Ответ
Типы API классифицируются по архитектурному стилю и протоколу:
1. REST (Representational State Transfer)
- Основа: HTTP-методы (GET, POST, PUT, DELETE, PATCH) и ресурсы (URI).
- Формат данных: JSON или XML.
- Ключевые принципы: Stateless, кэшируемость, единообразие интерфейса.
- Пример запроса:
GET /api/v1/users/123 HTTP/1.1 Host: example.com
2. GraphQL
- Основа: Единая конечная точка (endpoint) и язык запросов.
- Преимущество: Клиент точно определяет структуру и объем требуемых данных, избегая over/under-fetching.
- Пример запроса:
query { user(id: 123) { name email posts(limit: 5) { title } } }
3. gRPC (Remote Procedure Call)
- Основа: Вызов удаленных методов, как локальных функций. Использует протокол HTTP/2.
- Контракты: Строгая типизация через файлы
.proto(Protocol Buffers). - Применение: Высокопроизводительная межсервисная коммуникация в микросервисных архитектурах.
4. SOAP (Simple Object Access Protocol)
- Основа: Строгий XML-протокол со встроенными стандартами безопасности (WS-Security) и транзакций.
- Применение: Корпоративные и финансовые системы, где критична стандартизация и безопасность.
5. WebSocket
- Основа: Постоянное двунаправленное соединение поверх TCP.
- Применение: Приложения реального времени (чаты, биржевые тикеры, онлайн-игры).
Дополнительные концепции:
- Webhook: Механизм обратного вызова (callback), когда сервер инициирует запрос к клиенту при наступлении события.
- OpenAPI/Swagger: Стандарт для описания и документирования REST API.