Вопрос проверяет базовое понимание типов API и их отличий на концептуальном уровне.
Существуют REST API, RPC API, GraphQL API и WebSocket API. REST основан на HTTP и ресурсах. RPC ориентирован на вызов функций. GraphQL позволяет клиенту самому выбирать структуру ответа. WebSocket используется для постоянного соединения и обмена в реальном времени.
API — это интерфейс, через который одна система взаимодействует с другой.
Определение:
API (Application Programming Interface) — это набор правил и способов взаимодействия программ.
Особенности:
Работа через HTTP
Использование ресурсов
Методы GET, POST, PUT, DELETE
Пример запроса:
GET /users/10
Идея:
Клиент вызывает метод на сервере.
Пример:
createUser(name="Ivan")
Примеры технологий:
gRPC
XML-RPC
Особенность:
Клиент сам указывает, какие поля нужны.
Пример:
# пример запроса GraphQL
query {
user(id: 1) {
name
email
}
}
Плюс:
Нет лишних данных.
Особенности:
Постоянное соединение
Обмен в реальном времени
Используется:
Чаты
Онлайн-игры
Торговые терминалы
Тип API выбирают исходя из задачи: REST — универсальный вариант, GraphQL — гибкость данных, RPC — производительность, WebSocket — реальное время.