2009-05-12 1 views
1

При определении службы RESTful, ориентированной на ресурсы, вы считаете, что это хорошая идея определить явную операцию (глагол) для запроса данных?Операции службы RESTful для запроса данных

Кажется очевидным и легко отображать операции CRUD в ресурсо-ориентированном сервисе RESTful, используя HTTP для операций, таких как PUT, GET, POST & DELETE, но как должны выполняться операции, которые запрашивают несколько ресурсов, - с помощью новой операции, называемой ' QUERY 'или по-прежнему использовать' GET ', который возвращает коллекцию ресурсов.

Меня интересует людей мнения и опыт ...

ответ

7

ОТДЫХ - это ресурсы. Какой ресурс будет возвращен вашему запросу? Набор данных? Как определяется этот набор? Как он параметризуется? Это должно определить URL вы будете использовать с операцией GET:

GET /customers would retrieve all customers 
GET /customers?q=<query> would retrieve all customers matching the query 

EDIT: не ниже совсем так ясно мне

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

GET /customers/state/MA    Retrieve all customers in Massachusetts 
GET /customers/country/UK   All in the UK 
GET /customers/country/UK/postalcode/001-234 All in that postal code in the UK 

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

Напомним, что операция GET предназначена для идемпотентных операций и предназначена для продвижения кеширования. Ответ на эти запросы должен позволить некоторое разумное количество кеширования (возможно, один день). Это позволило бы клиентскому компьютеру или прокси-серверу кэшировать результирующий набор в течение определенного периода времени, экономя серверные поездки в оба конца.

+0

для меня это кажется очевидным способом мышления о запросе ресурсов – AwkwardCoder

+1

Сообщите нам, если это не сработает для вас. Я не «поклонник» REST, но думать о «R» в «REST» как о «ресурсе» - это единственный способ, который имеет для меня какой-то смысл. –

+0

Вы предпочитаете стиль обслуживания SOAP? – AwkwardCoder

0

я бы до сих пор используют GET и обеспечивают параметры запроса в URL.

0

Вернуть список соответствующих URI ресурсов в качестве ответа.

 Смежные вопросы

  • Нет связанных вопросов^_^