RESTful URL-адреса и папки - PullRequest
       2

RESTful URL-адреса и папки

0 голосов
/ 19 июля 2010

В спецификации Микроформаты для URL-адресов RESTful :

GET /people/1
вернуть первую запись в формате HTML

GET /people/1.html
вернутьПервая запись в формате HTML

и /people возвращает список людей

Так что /people.html является правильным способом вернуть список людей в формате HTML?

Ответы [ 4 ]

1 голос
/ 19 июля 2010

У вас правильная идея. И /people, и /people.html будут возвращать списки людей в формате HTML, а /people.json будет возвращать список людей в формате JSON.

Не следует путать это с применением расширений типов данных к «папкам» в URL-адресах. В списке примеров /people/1 само используется как папка для различных других запросов.

1 голос
/ 19 июля 2010

Если вы просто ссылаетесь на расширение пути URL, то да, эта схема является рекомендуемым поведением для согласования контента:

  • путь без расширения - это общий URL (например, /people для любого принятого формата)
  • путь с расширением - это определенный URL-адрес (например, /people.json в качестве URL-адреса, специфичного для типа содержимого для формата данных JSON)

При такой схеме сервер может использовать согласование содержимого при запросе общего URL-адреса и отвечать определенным представлением при запросе определенного URL-адреса.

Документы, которые рекомендуют эту схему, среди прочих:

0 голосов
/ 02 августа 2010

URI и то, как вы их проектируете не имеет ничего общего с RESTful или нет.

Это обычная практика делать то, что вы просите, поскольку это то, как Apacheвеб-сервер работает .Допустим, у вас есть foo.txt, foo.html и foo.pdf, и вы запрашиваете GET /foo без каких-либо предпочтений (то есть без заголовка Accept:).300 MULTIPLE CHOICES будет возвращен со списком трех файлов, чтобы пользователь мог выбрать.Поскольку браузеры выполняют такие изумительные согласования контента, трудно сослаться на пример, но здесь идет речь: Пример показывает, как он выглядит, за исключением того, что причина, по которой вы видите страницу в первую очередь, заключается в другомслучай имени файла ("XSLT" против "xslt").

Но это поведение Apache отражено в соглашениях и различных инструментах, но на самом деле это не важно.У вас может быть people_html или people?format=html, или people.html, или sandwiches, или 123qweazrfvbnhyrewsxc6yhn8uk в качестве URI, который возвращает людей в формате HTML.Клиент не знает ни одного из этих URI заранее , он должен узнать об этом из других ресурсов.Человек может увидеть результат <a href="/sandwiches">All People (HTML format)</a> и понять, что происходит, игнорируя при этом странно выглядящий URI.

В заключительной заметке страница соглашений об URL-адресах микроформатов абсолютно не является спецификацией дляURL-адреса RESTful , это просто руководство по созданию URI, которые, очевидно, легко используются различными HTTP-библиотеками по тем или иным причинам и не имеют ничего общего с REST.Все рекомендации в порядке, и следование им делает ваши URI выглядящими вменяемыми другим людям, которые случайно заглядывают в URI (/sandwiches, по общему признанию, странный).Но даже цитируемый протокол AtomPub не требует, чтобы записи жили «внутри» коллекции ...

0 голосов
/ 19 июля 2010

Это говорит о том, что GET /people/1.json должен вернуть первую запись в формате JSON.- Что имеет смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...