Я создаю REST API, который использует параметр filter
для управления результатами поиска. Например, можно было бы искать пользователя, вызывая:
GET /users/?filter=name%3Dfoo
Теперь мой API должен допускать множество разных операторов filter
. Числовые операторы, такие как equals
, greater than
, less than
, операторы строк, такие как contains
, begins with
или ends with
и операторы даты, например year of
или timediff
. Более того, комбинации AND
и OR
должны быть возможны.
В принципе, я хочу поддерживать подмножество базовых операторов базы данных MySQL.
Я нашел много разных реализаций (два хороших примера: Google Analytics и LongJump), которые кажутся для использования пользовательского синтаксиса.
Рассматривая мои требования, я бы, вероятно, разработал специальный синтаксис, очень похожий на синтаксис оператора MySQL.
Однако мне было интересно, есть ли какие-либо лучшие практики, которые я должен соблюдать, и должен ли я рассматривать что-то еще. Спасибо!