Использование более расширенного поискового запроса в запросе HTTP GET - PullRequest
0 голосов
/ 23 января 2020

Я ищу более продвинутый способ структурирования запроса, относящегося к http GET-запросу

Например, вместо

?quantity=5&delivery_date_min=&delivery_date_max=20200520&created_from=20191212&crated_to&name=productname

есть

q=quantity:5 delivery_date<=20200520 created_from>=20191212 name:"product name"

Мой вопрос - есть ли уже стандарт, относящийся к этим типам запросов, и он

Наиболее близким к этому запросу, с которым я столкнулся, является синтаксис запроса Lucene, но поскольку я использую ядро ​​asp. net и c# Я не уверен, существует ли альтернативная терминология и подход для c#, или это только индивидуум должен структурировать и анализировать запросы такого типа?

1 Ответ

0 голосов
/ 23 января 2020

Существует ли уже стандарт, относящийся к этим типам запросов

Есть несколько языков запросов, которые "стоят поверх REST", чтобы помочь людям создавать более сложные запросы, два, которые сразу приходят на ум:

OData - https://www.odata.org/

Процитируем их страницу документации

OData была стандартизирована OASIS и утвержден в качестве международного стандарта ISO / IEC.

Их запросы выглядят примерно так:

serviceRoot/People('russellwhyte')/Trips(1003)/PlanItems(21)/Microsoft.OData.SampleService.Models.TripPin.Flight

Из того, что я помню, на самом деле исходит от Microsoft, и определенно стоит проверить

GraphQL - https://graphql.org/

Открытый стандарт, разработанный людьми на Facebook

пример запроса:

{
  human(id: "1000") {
    name
    height
  }
}

Имеется несколько библиотек с поддержкой c#: https://graphql.org/code/#c - net

Edit Одна вещь, которую я скажу о framworkds Я говорил здесь, они очень самоуверенны о том, как вы должны запрашивать / возвращая ваши данные, это может быть выгодно или невыгодно, поэтому, вероятно, стоит провести обширные исследования обоих, прежде чем совершать какие-либо действия.

...