Рубрики
Без рубрики

HTTP-Методы Для Служб Restful

REST API позволяют разрабатывать любые веб-приложения, имеющие все возможные CRUD (create,… С тегами java, rest api, httpmethod, restfulservices.

REST API позволяют разрабатывать любые веб-приложения, имеющие все возможные операции CRUD (создание, извлечение, обновление, удаление). Методы HTTP составляют основную часть нашего ограничения “uniform interface” и предоставляют нам действие, аналогичное ресурсу на основе существительных. Основными или наиболее часто используемыми HTTP-методами являются POST, GET, PUT, PATCH и DELETE. Они соответствуют операциям создания, чтения, обновления и удаления (или CRUD) соответственно.

Способ 1: СООБЩЕНИЕ

POST – это единственный HTTP-метод RESTful API, который в основном работает с коллекциями ресурсов. При создании подчиненного ресурса в коллекции применение POST к родительскому ресурсу запрашивает у него создать новый ресурс, связать его с соответствующей иерархией и вернуть выделенный URL-адрес для последующего использования. Однако имейте в виду, что POST не является идемпотентным; вы не можете использовать этот метод более одного раза и ожидать последовательного результата или результата.

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

Способ 2: ПАТЧ

Запрос ИСПРАВЛЕНИЯ – один из менее известных HTTP-методов, но я включаю его в этот список, поскольку он похож на POST и PUT. Разница с ИСПРАВЛЕНИЕМ заключается в том, что вы применяете только частичные изменения к ресурсу.

Разница между PATCH и PUT заключается в том, что запрос на ИСПРАВЛЕНИЕ неидемпотентен (как и POST-запрос).

Чтобы подробнее остановиться на частичной модификации, предположим, что ваш API имеет конечную точку/users/(двойные скобки) {userid}, а у пользователя есть имя пользователя. При запросе ИСПРАВЛЕНИЯ вам может потребоваться только отправить обновленное имя пользователя в теле запроса – в отличие от POST и PUT, для которых требуется полная сущность пользователя.

Способ 3: получить

Наиболее распространенным HTTP-методом является GET, который возвращает репрезентативное представление содержимого и данных ресурса. GET следует использовать в режиме только для чтения, который обеспечивает безопасность данных и идемпотентность ресурса. Вы должны получать одни и те же результаты независимо от того, сколько раз вы используете этот метод, если только он не будет изменен другим клиентом за это время.

Метод GET иногда используется для изменения содержимого ресурса, но это ненадежное использование метода. Обычно ставится под угрозу способность клиента ИСПРАВЛЯТЬ ресурс, если ресурс обнаруживает изменения с момента последнего выполнения GET клиентом ИСПРАВЛЕНИЯ.

Способ 4: ПОЛОЖИТЬ

Подобно POST, запросы PUT используются для отправки данных в API для обновления или создания ресурса. Разница в том, что запросы PUT являются идемпотентными. То есть многократный вызов одного и того же запроса PUT всегда приведет к одному и тому же результату. Напротив, повторный вызов POST-запроса приводит к побочным эффектам многократного создания одного и того же ресурса.

Как правило, когда запрос PUT создает ресурс, сервер ответит 201 (Создан), а если запрос изменяет существующий ресурс, сервер вернет 200 (ОК) или 204 (Нет содержимого).

Способ 5: УДАЛИТЬ

Последний HTTP-метод для проверки – это DELETE. Когда метод УДАЛЕНИЯ нацелен на один ресурс, этот ресурс полностью удаляется.

Реализации УДАЛЕНИЯ обычно несколько противоречивы: URL-адрес ресурса может оставаться доступным, даже если фактический ресурс отсутствует. В этом типе сценария возможно, что реализация сервера или ресурса все равно изменит состояние исчезнувшего ресурса, используя URL-адрес, и, вероятно, по-разному отреагирует на последующие выполнения УДАЛЕНИЯ.

Хотя это, безусловно, возможно, вам обычно следует избегать использования метода УДАЛЕНИЯ в коллекции ресурсов, поскольку он удалит все содержимое внутри. Помните, что метод не является идемпотентным и не должен рассматриваться как таковой.

Оригинал: “https://dev.to/pramudaliyanage/http-methods-for-restful-services-1515”