У меня есть два вопроса об основных понятиях REST
.
ВОПРОС 1. Категории
Итак, у меня есть список категорий, которые я хочу показать из базы данных.
SELECT * from categories
В настоящее время я использую этот дизайн REST: /api/v1/categories/
Это правильно?
Я также видел /api/v1/categories/list/
-- или это предпочтительнее? (Если да, то что тогда будет отображаться при простом вызове /categories
? (Или правильным способом будет /api/v1/category/list
, где category
в единственном числе, а добавление list
покажет вам все категории — таким образом, вызов /category
позволит просмотреть информацию только по одному ?)
ВОПРОС 2: Подкатегории. (Думайте о «Сайнфелде» как о подкатегории «Телевидение».)
SELECT * FROM subcategories" WHERE category_id = {id}
id
выше может быть Телевизионной категорией, в которой я хочу получить список определенных шоу.
Буду ли я делать /api/v1/categories/{id}/
для подкатегории с subcat_id? Должен ли я вместо этого использовать параметры, такие как /Categories?id={id}/
Как будут работать эти отношения?
/api/v1/categories/xyzzy
(где xyzzy) — идентификатор категории, и/api/v1/categories/list
. (Отдел маркетинга изобретает категорию под названиемlist
, и теперь ваш код не работает...) И прежде всего: будьте последовательны. Придерживайтесь ОДНОГО пути. - person Mike Robinson   schedule 12.05.2015/api/v1/categories/item/xyzzy
. Теперь строка URL-адреса четко читается слева направо, и два возможных значения для четвертого элемента (в данном случае), скажем:list
илиitem
, так что наличие любой другой строки в этой позиции указывает на неверный формат URL (ошибка клиента). И каждый другой URL следует тому же шаблону. Я также встречал RESTful API, которые тоже i> поддерживал JSON, и у них было четко определенное URL-имя, которое указывало, что данные JSON должны сопровождать его.) Тщательно думайте, планируйте будущее и будьте последовательны. - person Mike Robinson   schedule 12.05.2015