Перейти к содержанию

🔌 API и взаимодействие сервисов

API — контракт, через который программы обмениваются данными и командами: клиент шлёт запрос, сервер возвращает ответ.

Status: Draft

1. HTTP / REST

REST — стиль HTTP API: работа с ресурсами по URL, глаголы HTTP, обычно JSON.

Метод Типично
GET прочитать
POST создать
PUT / PATCH заменить / частично обновить
DELETE удалить

Коды: 200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Server Error.

Пример:

GET /api/v1/users/42 HTTP/1.1
Host: api.example.com
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json

{"id": 42, "name": "Ada"}

Рядом по смыслу (не обязательно REST): SOAP, GraphQL, gRPC — другие контракты поверх сети.

2. Auth
Способ Идея
API key Секрет в header/query
Basic login:password (Base64), лучше только по TLS
Bearer JWT Токен в Authorization: Bearer …
OAuth 2 Выдача токенов через authorization server

Без TLS секреты в transit видны — для прод API почти всегда HTTPS.

3. Вызов из CLI

curl — базовый инструмент ops:

curl -sS -X GET \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  https://api.example.com/api/v1/users/42

Параметры запроса: query (?page=1), path (/users/42), headers, body (JSON для POST/PUT).

Postman (и аналоги) — GUI: коллекции, environments, простые тесты. Удобно для отладки; в автоматизации чаще curl/httpie/скрипты.

4. Sync vs async
Sync (HTTP API) Async (очередь / брокер)
Модель запрос → ждём ответ отправили событие → обработают позже
Связность клиент знает URL сервиса через топик/очередь
Типично CRUD, admin API пайплайны, пики нагрузки

Оба способа — «взаимодействие сервисов»; брокеры (Kafka и др.) — отдельный раздел.

Вопросы

В разработке..