Расширенные запросы в REST - PullRequest
5 голосов
/ 24 января 2012

Я пытаюсь создать более продвинутый механизм запросов для REST. Предположим, у меня есть следующее:

GET  /data/users

и возвращает список пользователей. Затем для фильтрации возвращаемых пользователей, например, я бы сказал:

GET /data/users?age=30

, чтобы получить список 30-летних пользователей. Теперь предположим, что я хочу пользователей в возрасте от 30 до 40 лет. Мне бы хотелось иметь набор операторов многократного использования, таких как:

GET /data/users?greaterThan(age)=30&lessThan(age)=40

HigherThan и lessThan можно будет повторно использовать в других числовых полях, полях даты и т. Д. Это также позволило бы мне добавить другие операторы (содержит, начинается с, заканчивается и т. Д.). Я нуб REST, поэтому я не уверен, нарушает ли это какой-либо из основных принципов, которым следует REST. Есть мысли?

Ответы [ 2 ]

1 голос
/ 24 января 2012

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

/data/users?age=[30,40]

или

/data/users?age=>30&age=<40

было бы немного легче читать, просто убедитесь, что url кодирует, если вы используете какие-либо зарезервированные символы

1 голос
/ 24 января 2012

С другой стороны, вам может быть лучше использовать необязательные параметры "minAge" и "maxAge".

Альтернатива 2: кодировать значение (я) для параметров, указывающих выполняемый тест: неравенства, шаблонсопоставление и т. д.

Это может привести к путанице, независимо от того, что вы делаете для сложных логических выражений.В какой-то момент вы почти хотите создать формат документа для самого описания запроса, но его уже трудно представить как «GET».

...