Как программы договариваются друг с другом?

REST API, OpenAPI и Swagger UI на примере службы доставки.

Один сервис. Разные клиенты. Общие правила обмена.
01
Клиенты обращаются к одному Delivery API, который использует данные службы доставки

Одним API пользуются разные клиенты

Сайт, приложение, бот и Swagger UI обращаются к одной службе доставки.

02

Путь одного запроса

Клиент → HTTP-запрос → Delivery API → HTTP-ответ

GET /shipments/125 → данные о посылке № 125 в JSON

Swagger UI в этой цепочке — ещё один клиент.
03

Что фиксирует контракт API

Запрос

Метод, адрес, параметры, заголовки и тело.

Ответ

Статус, структура данных и типы полей.

Правила

Авторизация, ограничения и возможные ошибки.

04

HTTP-запрос: что отправляет клиент

GET /shipments/125 HTTP/1.1
Host: delivery.example.edu
Authorization: Bearer <token>
Accept: application/json
Где здесь метод, адрес ресурса и подтверждение доступа?
05

Ресурсы и методы

МетодПримерСмысл
GET/shipmentsПолучить список.
GET/shipments/125Получить одну посылку.
POST/shipmentsСоздать посылку.
PATCH/shipments/125Изменить часть данных.
POST/shipments/125/cancelВыполнить действие «отменить».
06

JSON: число и строка различаются

{ "id": 125,   "weight_grams": 2500 }
{ "id": "125", "weight_grams": "2500" }

Для человека ответы похожи. Программа может ожидать именно числа.

07

HTTP-ответ: данные и результат операции

СтатусЧто это означает в примере
200Посылка найдена; данные в ответе.
201Новая посылка создана.
401Запрос не аутентифицирован.
403Доступ к операции запрещён.
404Такой посылки не нашли.
500Сбой на стороне сервера.
Сервер ответил — ещё не значит, что операция удалась.
08

Токен связывает запрос с пользователем

Получить

Клиент проходит предусмотренный сервисом вход.

Передать

Authorization: Bearer <token> в заголовке запроса.

Проверить

Сервер определяет пользователя и разрешённые действия.

09

Четыре разных понятия

API

Работающий интерфейс сервера.

Контракт

Правила запросов, ответов и ошибок.

OpenAPI

Машиночитаемое описание HTTP API.

Swagger UI

Веб-клиент, который читает описание и выполняет запросы.

10

OpenAPI описывает операцию

openapi: 3.1.0
paths:
  /shipments:
    get:
      summary: Список посылок
      responses:
        '200':
          description: Список получен

Один и тот же документ можно открыть как /openapi.json и через Swagger UI.

11

Что делает Swagger UI

Читает OpenAPI → строит форму → отправляет HTTP-запрос → показывает ответ

Authorize · Try it out · Execute · статус и JSON

Видимая документация помогает, но правильность API проверяет реальный ответ.
12

Демонстрация: найти и отменить посылку

Нужный id сначала неизвестен: его надо найти в ответе.
13

Что остаётся после лекции

Один HTTP API может обслуживать разные интерфейсы.

Контракт задаёт методы, данные, доступ и возможные исходы.

OpenAPI делает правила читаемыми для инструментов; Swagger UI позволяет проверить их запросом.

Следующий шаг — использовать тот же контракт для создания клиента и проверки его работы.
14
← → листать · F полный экран