как анализировать ODataQuery / ODataQueryOptions в конечных точках, поддерживающих запросы OData - PullRequest
0 голосов
/ 09 мая 2020

Я использую net core 3.1. Мой проект содержит контроллер api (ODataController), который поддерживает конечные точки, которые запрашивают OData. Я хотел бы проанализировать запросы OData, чтобы создать собственный запрос для передачи какой-либо другой службы отдыха. Как создать синтаксический анализатор для запросов OData?

некоторые конечные точки, поддерживающие запросы OData.

[HttpGet]
[EnableQuery]
public IEnumerable<WeatherForecast> Get()

[HttpGet]
[ODataRoute]
[EnableQuery(HandleNullPropagation = HandleNullPropagationOption.False, MaxTop = 100, 
AllowedQueryOptions = AllowedQueryOptions.Select |AllowedQueryOptions.Count)]
public IEnumerable<WeatherForecast> Getlist(ODataQueryOptions options)

1 Ответ

0 голосов
/ 09 мая 2020

Я полагаю, вы могли бы просто разбить его на составные части:

ApplyClause applyClause = options.Apply.ApplyClause;
bool count = options.Count.Value;
FilterClause filterClause = options.Filter.FilterClause;
OrderByClause orderByClause = options.OrderBy.OrderByClause;
int skip = options.Skip.Value;
int top = options.Top.Value;
⋮

Или получить версии string:

string applyClause = options.RawValues.Apply;
string count = options.RawValues.Count;
string filterClause = options.RawValues.Filter;
string orderByClause = options.RawValues.OrderBy;
string skip = options.RawValues.Skip;
string top = options.RawValues.Top;
⋮
...