ОТДЫХ: пост против постов и новый против создания - PullRequest
3 голосов
/ 27 июня 2010

Когда вы разрабатываете схему URL для своего приложения, какие правила вы используете?

  • example.com / post / или example.com / posts / для списка сообщений
  • example.com / post / new / или example.com / post / create / для нового сообщения
  • example.com / posts / + example.com / post / 23 / или example.com / post / + example.com / post / 23 / для списка и деталей сообщения?
  • example.com / post / 23 или example.com / post / 23 / для подробностей
  • example.com / post / edit / 23 / или example.com / post / 23 / edit / для редактирования.

Я предпочитаю: / post / для списка, / post / 23 / для деталей, / post / 23 / edit / для редактирования, Просто я могу очень легко работать с этим URL вручную в строке адреса браузера. Я не прав? Предложи мне, пожалуйста.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 июня 2010

Вероятно, вам следует использовать метод HTTP POST при создании нового ресурса. Итак, для нового клиента вы можете отправить POST на example.com/customer. Затем, если вы хотите получить информацию об этом клиенте, выполните GET для example.com/customer/ enjyour недавно созданный идентификатор клиента}. Если вы хотите, чтобы все клиенты делали GET на example.com/customer. Если вы хотите отредактировать клиента, вы, вероятно, захотите PUT на example.com/customer/ enjyour идентификатор клиента}

Кажется, что ваша основная проблема заключается в том, что вы указываете свое действие (или глагол) в своем URL. Вам не нужно это делать. Вместо того, чтобы делать что-то вроде example.com/edit/23, вы должны использовать метод HTTP PUT с example.com/23 (или example.com/customers/23).

Посмотрите на что такое RESTful / REST для обзора по созданию ресурсов RESTful.

Посмотрите на PUT против POST в REST для разницы между POST и PUT (редактировать и создавать).

Для создания более сложных URL-адресов RESTful я обычно ссылаюсь на эту презентацию от ботаников LinkedIn.

0 голосов
/ 30 июня 2010

Я использую:

  • GET / сообщения для списка
  • GET / posts / new to получить пустую форму HTML для «статического» только сайты (сайты 'ajax' и «автономным» клиентам это не нужно)
  • POST / posts для create ('action' attr в предыдущей форме)
  • GET / posts / 23 for деталь (не для редактирования!)
  • GET / posts / 23 / изменить, чтобы получить заполненный HTML форма со скрытым полем "_method = PUT" эмулировать PUT в браузерах
  • PUT / posts / 23 для редактирования ('action' attr в предыдущей форме)
  • УДАЛИТЬ / posts / 23 для удаления (встроенная HTML-форма с '_method = DELETE' для эмуляции)
  • POST / posts / 23 для эмуляции PUT и DELETE в браузерах

И я никогда не использую / posts / или / posts / 23 /, потому что сложно (или грязно) изменить формат ответа. Я могу использовать / posts (синоним для /posts.html) для браузеров, /posts.xml для служб XML, /posts.json для данных 'ajax' и /posts.smth_else для чего-то еще :) в будущем. Также все они могут быть статическими файлами (кеш или архив) для освобождения процессора и памяти при высокой нагрузке.

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