Ruby on Rails - дифференцирующееся множественное число по сравнению с исключительным ресурсом в API REST

Я работаю над созданием URL для моего API REST, прежде чем я начну писать любой код. Волшебство REST направляющих является фантастическим, но я немного побеспокоен форматирование URL, такого как:

http://myproject/projects/5

где Проект является моим ресурсом, и 5 project_id. Я думаю, надеется ли пользователь получать все их проекты, то соответствующий HTTP ДОБИРАЕТСЯ http://myproject/projects имеет смысл. Однако, если они надеются получать информацию об исключительном ресурсе, таком как проект, затем имеет смысл иметь http://myproject/project/5 по сравнению с http://myproject/projects/5. Лучше избежать этой головной боли, или некоторые из Вас разделяют подобное беспокойство, и еще лучше - имеют рабочее решение?

10
задан randombits 10 April 2010 в 20:29
поделиться

2 ответа

Rails (3) имеет множество соглашений, когда дело касается единственного и множественного числа. Например, классы моделей всегда имеют единственное число ( Person ), а соответствующие таблицы всегда имеют множественное число ( люди ). (Например, Person.all отображается на select * from people .)

Для маршрутов существует понятие единственного ресурса, а также множественного ресурса. Итак, если вы выбрали resource: account , тогда вы получите такие пути, как / account для пути по умолчанию или / account / edit для пути к форме для редактирования. счет. (Обратите внимание, что Rails использует / account с методом PUT для фактического обновления учетной записи. / account / edit - это форма для редактирования учетной записи, которая является отделите ресурс от самой учетной записи.) Однако если вы сделали resources: people , то получили бы такие пути, как / people , / people / 1 и / люди / 1 / редактировать . Сами пути указывают, может ли быть только один экземпляр данного типа ресурса или может быть несколько экземпляров, различаемых некоторым типом идентификатора.

17
ответ дан 3 December 2019 в 18:32
поделиться

Согласен, плывите по течению. Рассмотрим, как URL-адрес образует иерархию.

Корень вашего веб-сайта - это то место, откуда вы начинаете получать доступ ко всему.

/ projects / сужает его до только проектов, и ничего больше. Из проектов вы можете делать множество вещей, / list, / index /, / export и т. Д. / Id еще больше ограничивает возможности.

С каждым / объем того, что нужно делать, сужается, и я думаю, что это имеет смысл.

Дальнейшее программирование основано на произвольных правилах. Индексы, начинающиеся с 1 против 0, и так далее. Любой, кто работает с вашими URL-адресами, быстро разберется со всем.

3
ответ дан 3 December 2019 в 18:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: