Каковы лучшие/распространенные УСПОКОИТЕЛЬНЫЕ глаголы URL и действия?

83
задан superjos 28 February 2013 в 16:13
поделиться

5 ответов

URL Использования для определения объектов, не действий:

Примечание, что Вы сначала упомянули, не является УСПОКОИТЕЛЬНЫМ:

/questions/show/<whatever>

Вместо этого необходимо использовать URL для определения объектов:

/questions/<question>

Тогда Вы выполняете один из ниже операций на том ресурсе.

<час>

ДОБЕРИТЕСЬ:

Используемый для получения ресурса запросите список ресурсов, и также запрашивать информацию только для чтения о ресурсе.

Для получения ресурса вопроса:

GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com

Для списка всех ресурсов вопроса:

GET /questions HTTP/1.1
Host: whateverblahblah.com

POST:

Используемый для создания ресурса.

Примечание, что следующее является ошибкой:

POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com

, Если URL еще не создается, Вы не должны использовать POST для создания его при определении имени. Это должно привести к ресурсу, не найденному ошибкой, потому что еще не существует. Необходимо ПОМЕСТИТЬ ресурс на сервер сначала. Вы могли утверждать, что путем создания нового вопроса, также обновляете / ресурс вопросов, поскольку он теперь возвратил бы еще один вопрос в своем списке вопросов.

необходимо сделать что-то вроде этого для создания ресурса с помощью POST:

POST /questions HTTP/1.1
Host: whateverblahblah.com

Примечание, что в этом случае имя ресурса не определяется, новый путь URL объектов, было бы возвращено Вам.

УДАЛИТЕ:

Используемый для удаления ресурса.

DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com

ПОМЕЩЕННЫЙ:

Используемый, чтобы создать ресурс или перезаписать его, в то время как Вы определяете URL ресурсов.

Для нового ресурса:

PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com

Для перезаписи существующего ресурса:

PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com

... Да, они - то же. ПОМЕЩЕННЫЙ часто описывается как метод 'редактирования', как путем замены всего ресурса с немного измененной версией, Вы отредактировали то, что ПОЛУЧАТ клиенты, когда они затем сделают.

<час>

Используя REST в HTML-формах:

спецификация HTML5 определяет, ДОБИРАЮТСЯ и POST для элемента формы .

атрибут содержания метода является перечислимым атрибутом со следующими ключевыми словами и состояниями:

  • ключевое слово ДОБИРАЕТСЯ, отображение на состояние ДОБИРАЕТСЯ, указывая, что HTTP ПОЛУЧАЕТ метод.
  • POST ключевого слова, отображаясь на государственный пост, указывая на метод POST HTTP.
<час>

Технически, Спецификация HTTP не ограничивает Вас только теми методами. Вы технически свободны добавить любые методы, которые Вы хотите, на практике хотя, это не хорошая идея. Идея состоит в том, что все знают, что Вы используете, ДОБИРАЮТСЯ для чтения данных, таким образом, они перепутают вопросы, если Вы решите вместо этого использовать ЧТЕНИЕ. Это сказало...

ПАТЧ:

Это - метод, который был определен в формальном RFC. Это разработано к используемому для того, когда Вы хотите отправить просто частичную модификацию в ресурс, это использовалось бы во многом как ПОМЕЩЕННЫЙ:

PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com

различие ПОМЕЩАЕТСЯ, должен отправить весь ресурс, неважно, как большой это сравнивается с тем, что на самом деле изменяется, пока ПАТЧ можно отправить всего изменения.

171
ответ дан Astitva Srivastava 24 November 2019 в 08:49
поделиться

Принятие /questions/10 является допустимым вопросом тогда, метод используется для взаимодействия с ним.

POST для добавления к нему

ПОМЕЩЕННЫЙ, чтобы создать или заменить его

ДОБИРАЮТСЯ, чтобы просмотреть/запросить его

и УДАЛИТЬ к хорошо.. удалите его.

URL не изменяется.

11
ответ дан Özgür 24 November 2019 в 08:49
поделиться

Я собираюсь рискнуть и предположить, что Вы, что Вы имеете в виду, - то, что является стандартными контроллерами для MVC, когда Вы говорите "УСПОКОИТЕЛЬНЫЕ" URL, так как Ваши примеры можно было считать не - "УСПОКОИТЕЛЬНЫМИ" (см. этот статья).

, Так как направляющие действительно популяризировали стиль URL, которым Вы, кажется, интересуетесь, я предлагаю ниже действий контроллера по умолчанию, произведенных ScaffoldingGenerator в Ruby on Rails. Они должны быть знакомы любому использующему приложение направляющих.

действия лесов и представления: индекс, список, показывает, новый, создает, редактирует, обновляет, уничтожает

Обычно, Вы создали бы это как:

http://application.com/controller/<action>/<id>
3
ответ дан tvanfosson 24 November 2019 в 08:49
поделиться

Вот отображение Ваших текущих URL с помощью остальных принцип:

/question/show/<whatever>

, Если Вы идентифицируете вопрос как ресурс, тогда он должен иметь уникальный URL. Используя ДОБИРАЮТСЯ для отображения, это (получите его), обычная практика. Это становится:

GET /question/<whatever>
<час>
/question/edit/<whatever>

Теперь Вы хотите, чтобы у Вашего пользователя было другое представление того же ресурса, который позволяет ему редактировать ресурс (возможно, со средствами управления формой).

Две опции здесь, Ваше приложение является приложением (не веб-сайт), тогда можно лучше использовать JavaScript для преобразования ресурса в доступный для редактирования ресурс ono сторона клиента.

, Если это - веб-сайт, то можно использовать тот же URL с дополнительной информацией для определения другого представления, обычная практика, кажется:

GET /question/<whatever>;edit
<час>
/question/update/<whatever> (this is the post back url)

Это должно изменить вопрос, таким образом ПОМЕСТИТЬ, корректный метод для использования:

PUT /question/<whatever>
<час>
/question/list   (lists the questions)

список вопроса является на самом деле родительским ресурсом вопроса, таким образом, это естественно:

GET /question
<час>

Теперь Вам, возможно, понадобится еще немного:

POST /question (create a new question and returns its URL)
DELETE /question/<whatever> (deletes a question if this is relevant)

Tada:)

1
ответ дан Vincent Robert 24 November 2019 в 08:49
поделиться

Ваши четыре примера могут быть такими:

GET /questions/123
POST (or PUT) /questions/123 q=What+is+the+meaning+of+life
POST (or PUT) /questions/123 q=What+is+the+meaning+of+life
GET /questions

Чтобы добавить вопрос:

POST /questions q=What+is+the+meaning+of+life

Сервер ответит:

200 OK (or 201 Created)
Location: /questions/456
-1
ответ дан 24 November 2019 в 08:49
поделиться
Другие вопросы по тегам:

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