Каковы наилучшие / распространенные глаголы и действия URL-адреса RESTful?

Я пытаюсь найти информацию о лучших и наиболее распространенных действиях URL-адреса RESTful.

например, какой URL-адрес вы используете для отображения деталей элемента, для редактирования элемента, обновления и т. д.

/question/show/ /question/edit/ /question/update/ (this is the post back url) /question/list (lists the questions) 

хмм. спасибо всем, кто помогает 🙂

5 Solutions collect form web for “Каковы наилучшие / распространенные глаголы и действия URL-адреса RESTful?”

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

Обратите внимание, что вы впервые упомянули не RESTful:

 /questions/show/ 

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

 /questions/ 

Затем вы выполняете одну из следующих операций на этом ресурсе.


ПОЛУЧИТЬ:

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

Чтобы получить ресурс вопроса:

 GET /questions/ HTTP/1.1 Host: whateverblahblah.com 

Чтобы перечислить все вопросы:

 GET /questions HTTP/1.1 Host: whateverblahblah.com 

ПОСЛЕ:

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

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

 POST /questions/ HTTP/1.1 Host: whateverblahblah.com 

Если URL еще не создан, вы не должны использовать POST для его создания при указании имени. Это должно привести к ошибке, обнаруженной ресурсом, потому что пока не существует. Сначала вы должны указать ресурс на сервере. Вы можете утверждать, что, создавая новый вопрос, вы также обновляете ресурс / questions, так как теперь он возвращает еще один вопрос в свой список вопросов.

Вы должны сделать что-то подобное, чтобы создать ресурс, используя POST:

 POST /questions HTTP/1.1 Host: whateverblahblah.com 

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

УДАЛИТЬ:

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

 DELETE /questions/ HTTP/1.1 Host: whateverblahblah.com 

ПОЛОЖИЛ:

Используется для создания ресурса или его перезаписи при указании URL ресурсов.

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

 PUT /questions/ HTTP/1.1 Host: whateverblahblah.com 

Чтобы перезаписать существующий ресурс:

 PUT /questions/ HTTP/1.1 Host: whateverblahblah.com 

Да, они такие же. PUT часто описывается как метод «edit», так как, заменив весь ресурс на слегка измененную версию, вы отредактировали, какие клиенты будут GET, когда они это сделают.


Использование REST в HTML-формах:

Спецификация HTML5 определяет GET и POST для элемента формы .

Атрибут content метода – это перечисляемый атрибут со следующими ключевыми словами и состояниями:

  • Ключевое слово GET, сопоставление с состоянием GET, указывающее метод HTTP GET.
  • Ключевое слово POST, сопоставление с POST состояния, указывающее метод HTTP POST.

Технически спецификация HTTP не ограничивает вас только этими методами. Вы технически свободны добавлять любые методы, которые вы хотите, на практике, хотя это не очень хорошая идея. Идея состоит в том, что все знают, что вы используете GET для чтения данных, поэтому это путает вопросы, если вы решите вместо этого использовать READ. Тем не менее …

PATCH:

Это метод, который был определен в формальном RFC. Он предназначен для использования, когда вы хотите отправить только частичную модификацию ресурса, он будет использоваться так же, как PUT:

 PATCH /questions/ HTTP/1.1 Host: whateverblahblah.com 

Разница заключается в том, что PUT должен отправлять весь ресурс, независимо от того, насколько он сравним с тем, что действительно изменилось, в то время как PATCH вы можете отправлять только изменения.

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

POST, чтобы добавить к нему

PUT для создания или замены

GET для просмотра / запроса

и УДАЛИТЬ, чтобы хорошо .. удалить его.

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

Я собираюсь выйти на конечность и предположить, что вы имеете в виду то, что являются стандартными controllerами для MVC, когда вы говорите «RESTful» urls, так как ваши примеры можно считать не «RESTful» (см. Эту статью).

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

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

Обычно вы строили бы это как:

 http://application.com/controller// 

Ниже приведено сопоставление текущих URL-адресов с использованием принципа REST:

 /question/show/ 

Если вы определяете вопрос как ресурс, он должен иметь уникальный URL-адрес. Использование GET для его отображения (получение) является обычной практикой. Это становится:

 GET /question/ 

 /question/edit/ 

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

Здесь есть два варианта: ваше приложение – это приложение (а не веб-сайт), тогда вам может быть лучше использовать JavaScript для преобразования ресурса в редактируемый ресурс на стороне клиента.

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

 GET /question/;edit 

 /question/update/ (this is the post back url) 

Это должно изменить вопрос, поэтому PUT – правильный метод для использования:

 PUT /question/ 

 /question/list (lists the questions) 

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

 GET /question 

Теперь вам может понадобиться еще несколько:

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

Тада 🙂

Ваши четыре примера могут быть следующими:

 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 
  • Выход: GET или POST?
  • Как установить заголовок Content-Type для запроса HttpClient?
  • RESTful на Play! фреймворк
  • Почему программное обеспечение веб-сервера запрещает запросы PUT и DELETE?
  • Jersey Exception: SEVERE: читатель тела сообщения для classа Java
  • API REST API и CORS
  • Реализация пользовательских методов хранилища Spring Data и их просмотр через REST
  • Как производить JSON-выход с использованием Джерси-1.6 с использованием JAXB
  • RESTful вызов в Java
  • Как обновить коллекцию ресурсов REST
  • Использование HTTPS с REST в Java
  • Давайте будем гением компьютера.