2015-05-31 2 views
0

Есть ответы, но мой вопрос отличается от того, как я пытаюсь выяснить ури, когда у меня есть детали продукта или когда я должен возвращать детали на продукт плюс его клиенты. Мне нужно стандартное решение для следующих 4 звонков api. Для этой конкретной ситуации мне требуется стандартное соглашение об именах, пожалуйста, исправьте их из следующего.Дополнительная информация для соглашений об именах множественное число против сингулярного

множественного числа (с с)

GET /products - Список продуктов

GET /products/1 - Деталь продукта ТОЛЬКО (не клиентов)

болванка

GET /product/1 - Деталь продукт плюс его клиенты

GET /product/1/customers ТОЛЬКО клиенты продукта 1

Из вышеизложенного я пытаюсь найти решение для этих двух.

GET /products/1 - Деталь продукта ТОЛЬКО (нет клиентов)

GET /product/1 - Деталь продукта плюс это клиенты

ответ

1

Нет, не используйте диффер URL, чтобы различать между продуктом и без клиентов. Используйте content negotioation.

Чтобы получить продукт со встроенными клиентами, используйте один Accept заголовок:

GET /products/1 
Accept: application/vnd.com.example.rest.customer.long+json 

Чтобы получить продукт без клиентов, используйте другой Accept заголовок.

GET /products/1 
Accept: application/vnd.com.example.rest.customer.short+json 

Но всегда использовать тот же URL поскольку вы requeting тот же ресурс. Чтобы запросить различные адреса этого URL-адреса, используйте согласование содержимого.

+0

Отлично, спасибо, я заметил, что вы использовали форму множественного числа, 'GET/products/1', я смешался с ними, не является единственным, используемым для запроса одного элемента? в этом случае 'GET/product/1' – user2727195

+0

Я бы назвал ресурс'/products' (множественное число), так как это * ресурс коллекции * всех продуктов. –

+0

ok, что бы вы использовали 'DELETE/products/1',' PUT/products/1', 'POST/products/1' (множественное число)? – user2727195

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