REST API (Введение)

Опубликовано: 1 Марта, 2022

RE Presentational S t ransfer (REST) - это архитектурный стиль, который определяет набор ограничений, которые будут использоваться для создания веб-сервисов. REST API - это простой и гибкий способ доступа к веб-службам без какой-либо обработки.

Технология REST обычно предпочтительнее более надежной технологии Simple Object Access Protocol (SOAP), поскольку REST использует меньшую полосу пропускания, простой и гибкий, что делает его более подходящим для использования в Интернете. Он используется для получения или предоставления некоторой информации из веб-служб. Все коммуникации, осуществляемые через REST API, использовали только HTTP-запрос.

Работающий

Запрос отправляется от клиента к серверу в виде веб-URL как HTTP GET или POST, PUT или DELETE. После этого с сервера возвращается ответ в виде ресурса, который может быть любым, например HTML, XML, Image или JSON. Но сейчас JSON - самый популярный формат, используемый в веб-службах.

В HTTP есть пять методов, которые обычно используются в архитектуре на основе REST, то есть POST, GET, PUT, PATCH и DELETE. Они соответствуют операциям создания, чтения, обновления и удаления (или CRUD) соответственно. Есть и другие методы, которые используются реже, например OPTIONS и HEAD.

  1. GET: метод HTTP GET используется для чтения (или извлечения) представления ресурса. В безопасном пути GET возвращает представление в XML или JSON и код ответа HTTP 200 (OK). В случае ошибки он чаще всего возвращает 404 (НЕ НАЙДЕН) или 400 (НЕПРАВИЛЬНЫЙ ЗАПРОС).
  2. POST: глагол POST чаще всего используется для создания новых ресурсов. В частности, он используется для создания подчиненных ресурсов. То есть подчиняться какому-то другому (например, родительскому) ресурсу. При успешном создании вернуть HTTP-статус 201, возвращая заголовок Location со ссылкой на вновь созданный ресурс с HTTP-статусом 201.
    ПРИМЕЧАНИЕ. POST не является ни безопасным, ни идемпотентным.
  3. PUT: используется для обновления возможностей. Однако PUT также можно использовать для создания ресурса в случае, когда идентификатор ресурса выбирается клиентом, а не сервером. Другими словами, если PUT относится к URI, который содержит значение несуществующего идентификатора ресурса. При успешном обновлении верните 200 (или 204, если не возвращает никакого содержимого в теле) из PUT. Если для создания используется PUT, при успешном создании вернуть HTTP-статус 201. PUT - это небезопасная операция, но она идемпотентна.
  4. PATCH: используется для изменения возможностей. Запрос PATCH должен содержать только изменения ресурса, а не весь ресурс. Это похоже на PUT, но тело содержит набор инструкций, описывающих, как ресурс, находящийся в данный момент на сервере, должен быть изменен для создания новой версии. Это означает, что тело PATCH должно быть не просто измененной частью ресурса, а на каком-то языке исправлений, например JSON Patch или XML Patch. PATCH не является ни безопасным, ни идемпотентным.
  5. УДАЛИТЬ: используется для удаления ресурса, идентифицированного URI. При успешном удалении вернуть HTTP-статус 200 (OK) вместе с телом ответа.

Idempotence: An idempotent HTTP method is a HTTP method that can be called many times without different outcomes. It would not matter if the method is called only once, or ten times over. The result should be the same. Again, this only applies to the result, not the resource itself. Example,

1. a = 4 // It is Idempotence, as final value(a = 4)
        // would not change after executing it multiple
       // times.
  
2. a++ // It is not Idempotence because the final value
      // will depend upon the number of times the
     // statement is executed.

RESTful web services are very popular because they are light weight, highly scalable and maintainable and are very commonly used to create APIs for web-based applications.

Ссылки : https://en.wikipedia.org/wiki/Representational_state_transfer