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.