OData - это протокол открытых данных, это протокол на основе REST для запроса и обновления данных.
Почему именно OData?
OData помогает сосредоточиться на бизнес-логике при создании RESTful API, не беспокоясь о различных подходах к определению запроса. Мы рассмотрим пример и несколько сценариев, в которых OData может сделать нашу жизнь такой простой. У нас есть конечная точка API, которая возвращает все данные датчиков:
https: // localhost: 44348 / api / sensorData
Что делать, если мы получили следующие требования от Business:
1. Получите имя, тип и показания для всех датчиков.
2. Получите имя датчика и название местоположения для всех датчиков.
3. Получите температуру данные датчика, показания которых превышают 90.
Мы можем создать индивидуальную конечную точку для каждого требования или использовать OData. С помощью Magic of OData вы можете запросить у своей существующей точки все такие бизнес-требования. Давайте посмотрим, как мы можем добавить эту магию в наши существующие приложения C # .Net Core.
Включите OData в приложении C # .Net Core за 5 простых шагов:
Шаг 1: установите пакет NuGet Microsoft.AspNetCore.OData в существующее приложение.
Шаг 2: добавьте services.AddOData () в разделе ConfigureServices Method в файле startup.cs. Добавление этой строки кода поможет вашему приложению понять, что такое OData.
Шаг 3: добавьте внедрение зависимостей в метод UseMvc, чтобы активировать существующую конечную точку с помощью OData.
app.UseMvc (routeBuilder = ›
{
routeBuilder.EnableDependencyInjection ();
});
Шаг 4: добавьте функции запроса в метод UseMvc, добавьте те функции, которые вы хотите включить для конечных точек.
routeBuilder.Expand (). Select (). Filter (). Count (). OrderBy ();
Шаг 5. Предоставьте конечной точке «возможности запросов OData», добавив аннотацию [EnableQuery ()] поверх метода вашего контроллера.
Эти простые 5 шагов, и все готово. Теперь давайте посмотрим, как можно использовать API-интерфейсы OData RESTful.
Запрос конечных точек OData:
Сценарий 1: получите имя, тип и показания для всех датчиков.
Используйте опцию системного запроса $ select со всеми полями, необходимыми в ответе, разделенными запятыми.
https: // localhost: 44348 / api / sensorData? $ select = Name, Type, Reading
Сценарий 2: получите название датчика и название местоположения для всех датчиков.
Используйте опцию системного запроса $ expand, чтобы развернуть объект местоположения и просто выберите из него имя
https: // localhost: 44348 / api / sensorData? $ Select = Name & $ expand = Location ($ select = Name)
Сценарий 3: получите данные датчика температуры выше 90.
Используйте параметр системного запроса $ filter, чтобы отфильтровать тип датчика Температура и показания выше 90.
https: // localhost: 44348 / api / sensorData? $ Select = Name, Type, Reading & $ expand = Location ($ select = Name) & $ filter = Type eq Температура и чтение gt 90
Здесь мы видим, с помощью OData, насколько легко мы можем выполнить эти требования без создания различных конечных точек. В этом сила OData.