Play Framework 2.0 - Соглашения об именовании в спокойных URL
Я хотел задать этот вопрос и получить отзывы от других пользователей Play Framework (в частности, Play 2.0).
Допустим, у меня есть сущность под названием "FooBar". Давайте также предположим, что я предоставляю Restful API, который позволяет выполнять операции CRUD по URL 'http://<host>/api/foo_bar'
,
Мой вопрос заключается в том, существует ли среди сообщества консенсус в отношении того, как называть URL-адреса, когда URL-адрес обеспечивает доступ к объекту, имя которого содержит более одного слова?
Я могу подумать о следующих 4 вариантах именования таких URL, которые кажутся разумными:
- случай змеи (который был бы соглашением рельсов) - http:///api/foo_bar
- дело верблюда -
http://<host>/api/fooBar
- случай паскаля -
http://<host>/api/FooBar
- просто исключая подчеркивания (есть ли название для этого?) -
http://<host>/api/foobar
Заранее спасибо за отзыв!
2 ответа
Я бы избегал вариантов 2 и 3 по двум причинам:
Компонент пути URI чувствителен к регистру **, поэтому эти пути могут фактически указывать на разные конечные точки REST в вашем приложении, и это сбивает с толку.
Некоторые серверы (то есть в Windows) обрабатывают путь как нечувствительный к регистру, что может вызвать проблемы, если вам нужно перенести приложение на другую платформу (или хостинг-провайдера).
Между вариантами 1 и 4 я предпочитаю 1 (или дефисы), как это является стандартом де-факто, но я не знаю ничего официального.
** Спецификация для компонента пути URI не указывает, что регистр не учитывается, как это делается явно для всего, что есть.
AFAIK, для URL нет соглашения.
Большинство примеров использует отдельные слова для имен сущностей и представляет их в нижнем регистре в URL: entity = Computer
, путь для их перечисления = /computers
, Таким образом, для multi-word-parts
Я бы предложил использовать строчные и дефисы или подчеркивания - зависит от ваших привычек.
Я также видел Play-проекты и / или сэмплы с использованием всех указанных вами обозначений (т. Е. Документация Play использует Pascal, сэмпл play-authenticate использует нотацию-нижний регистр-дефис и т. Д.)
С другой стороны, для URL, видимого для обычного пользователя (я знаю, что это не по теме), особенно если URL представляет заголовок отображаемой страницы, я бы предложил использовать /The_Wikipedia_style
- с поддержкой нелатинских символов.