RESTful URL для службы поиска с произвольным количеством критериев фильтрации - PullRequest
3 голосов
/ 01 декабря 2009

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

Типичный поисковый запрос может включать около дюжины атрибутов данных. Например, поиск по научному названию, ограничить поиск до глубины воды менее 100м. Мой первый инстинкт - иметь все атрибуты в строке запроса. например ? SearchType = sciname & sciname = Мола Мола + & maxdepth = 100 & mindepth = 0

Однако строки запроса считаются не RESTful, см. http://rest.blueoxen.net/cgi-bin/wiki.pl?QueryStringsConsideredHarmful

Я смотрел некоторые ранние обсуждения SO, такие как Дизайн RESTful URL для поиска и я до сих пор не ясно по этому вопросу, поэтому мой вопрос:

Существует ли принятый стандарт или шаблон для RESTful URL для службы поиска, где может быть произвольное число фильтрации значений?

1 Ответ

10 голосов
/ 01 декабря 2009

В стиле REST Интернета:

  • Компонент path request-uri идентифицирует конкретный ресурс.
  • Строка запроса компонента request-uri идентифицирует любые конкретные фильтры или изменения, сделанные при представлении этого ресурса.
  • Заголовок Accept идентифицирует определенный тип контента, в котором должен быть представлен данный ресурс, отфильтрованный как указано.
  • Заголовок Accept-Language определяет конкретный язык, на котором должен быть представлен данный ресурс, отфильтрованный как указано.

Итак, чтобы ответить на ваш вопрос:

GET /species?searchType=sciname&sciname=mola+mola&maxdepth=100&mindepth=0

идеально подходит.

...