Урок 30 — API. REST. Swagger. Коды ответов. http методы. http заголовки

Взаимодействие по протоколу http состоит из запросов и ответов.У каждого запроса есть несколько параметров, давайте пройдемся по ним.

Тип запроса

Get, post, put, patch, delete, head, options. Чаще всего мы будем сталкиваться с get и post. Метод get нам нужен для того, чтобы запросить какие-то данные с сервера. Post для того, чтобы передарить и получить результаты. Когда мы в браузере открываем страницу и в тот момент, когда она  отображается делается запрос get. А если мы хотим заполнить и отправить какую то веб форму, то мы уже будем использовать post запрос.

Адрес обращения

Например  в каком нибудь url /registration кодируется нужный ресурс на сервере.

Http заголовки

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

  • User-Agent: Идентификация браузера или клиентского приложения, отправляющего запрос.
  • Content-Type: Тип контента, передаваемого в теле запроса или ответа (например, текст, изображение, JSON).
  • Content-Length: Размер тела запроса или ответа в байтах.
  • Host: Доменное имя сервера, к которому направлен запрос.
  • Accept: Типы контента, которые клиент может обработать.
  • Cookie: Информация о куках, передаваемая серверу с каждым запросом.
  • Location: Используется в HTTP-редиректах для указания нового местоположения ресурса.
  • Authorization: Используется для передачи информации для аутентификации, например, токена доступа.
  • Cache-Control: Управление кешированием на клиенте или сервере.
  • Server: Информация о сервере, обрабатывающем запрос.
  • Date: Дата и время создания запроса или ответа.

Примеры заголовков, как они выглядят в chrome dev tools вы можете увидеть в видео-уроке. Это лишь несколько примеров. Существует множество других заголовков, каждый из которых выполняет определенную функцию в рамках протокола HTTP. Заголовки играют важную роль в обеспечении правильной передачи данных, а также в управлении кэшированием, безопасностью и другими аспектами веб-взаимодействия.

Тело запроса

Тело запроса может содержать различные данные, в зависимости от типа запроса и его назначения. Наиболее распространенные типы тел запросов. Примеры body, как они выглядят в chrome dev tools вы можете увидеть в видео-уроке:

  • Текстовые данные (Text data): Это может быть обычный текст, JSON (JavaScript Object Notation), XML (eXtensible Markup Language) или любой другой формат данных.
  • Формы (Form data): Когда пользователь отправляет данные через веб-страницу, они часто отправляются в виде данных формы, таких как данные ввода пользователя.
  • Бинарные данные (Binary data): Например, изображения, аудио- или видео файлы, передаются как бинарные данные.

Структура ответа

В структуре ответа у нас точно также есть как и в запросе есть заголовки и точно также как и в случае запроса это словарь, тут сервер, например, может сообщить клиенту в каком формате отправлен ответ и тело ответа, то есть сами данные, которые нам отдал сервер.

HTTP-статус-коды

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

  • Информационные (Informational) 100-199.

    100 Continue: Сервер понял начальную часть запроса и ждет дальнейших инструкций клиента.

  • Успешные (Success) 200-299.

    200 OK: Запрос успешно выполнен. Это наиболее распространенный код для успешных запросов.

    201 Created: Запрос успешно выполнен, и в результате был создан новый ресурс.

    204 No Content: Запрос выполнен успешно, но ответ не содержит тела (например, при обновлении информации).

  • Запросы перенаправления (Redirection) 300-399.

    301 Moved Permanently: Ресурс перемещен навсегда в другое место. Клиентам следует использовать новый URI.

    302 Found (или 307 Temporary Redirect): Ресурс временно перемещен. Клиенты могут использовать тот же URI для следующих запросов.

  • Запросы относящиеся к ошибки клиента (Client Errors) 400-499.

    400 Bad Request: Запрос некорректен, либо сервер не может или не хочет его обрабатывать.

    401 Unauthorized: Требуется аутентификация для доступа к ресурсу.

    403 Forbidden: Клиент аутентифицирован, но ему запрещено доступать к запрашиваемому ресурсу.

  • Ошибки сервера (Server Errors) 500-599.

    500 Internal Server Error: Общая ошибка сервера. Что-то пошло не так, и сервер не может выполнить запрос.

    502 Bad Gateway: Сервер, выступая в роли шлюза или прокси, получил некорректный ответ от вышестоящего сервера.

    503 Service Unavailable: Сервер временно не может обрабатывать запросы. Это может быть из-за перегрузки или технической недоступности.

API и его виды

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

API, или интерфейс программирования приложений, — это набор инструкций и правил, которые позволяют разным программам «разговаривать» между собой. Как если бы это был набор команд, которые говорят программам, как друг с другом общаться.

Допустим, у вас есть приложение, и вы хотите, чтобы оно использовало какие-то функции  другого приложения или сервиса. Вы не хотите знать, как оно устроено внутри, но вам нужен способ отправить запрос и получить ответ. Здесь на помощь приходит API — он предоставляет четкий способ для ваших программ взаимодействовать с другими программами, не вдаваясь в детали их внутренней работы. API упрощает обмен информацией между разными частями программного обеспечения.

Есть несколько основных видов api

  • Rest  — достаточно простой архитектурный стиль для построения веб-сервисов про него мы поговорим больше всего и будем использовать его для обучения и далее.
  • Soap протокол который строится на обмене  xml данными
  • Graphql — протокол созданный fb, упрощающий создание клиент серврных систем.
  • gRPC — это открытый стандарт для обмена данными, разработанный компании google и решающий те же проблемы что и GraphQL, но чуть в другом виде.

Все эти протоколы, могут работать поверх протокола прикладного уровня http

REST

Часть всего используется именно rest.  Что вообще значит RESTful API и в чем разница между Rest API и RESTful API. Rest API — это архитектурный стиль, а RESTful API — это тип API, который следует принципам этого архитектурного стиля. То есть два этих термина по сути взаимозаменяемы.

Swagger

Swagger — это инструмент, который позволяет разработчикам описывать, документировать и тестировать API. Он облегчает взаимодействие с веб-службами, предоставляя понятное описание и возможность протестировать запросы и ответы напрямую в интерфейсе. Как работать со Swagger вы можете посмотреть в видео-уроке в начале статьи.

 

 

 

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.