Какие виды API существуют помимо REST API
Что проверяют
Умеете ли вы выбирать способ интеграции под задачу, а не рисовать REST везде по привычке. Следом обычно дают кейс: две системы должны обмениваться статусами заявок, что вы предложите и как опишете контракт.
Как отвечать
Аналитику полезно делить API не по названиям, а по модели взаимодействия, и к каждому варианту сразу называть формат контракта:
- SOAP: XML-сообщения по строгому контракту WSDL и XSD. Живёт в банках, госинтеграциях вроде СМЭВ и старых корпоративных шинах;
- GraphQL: одна точка входа, клиент сам перечисляет нужные поля. Контракт это схема SDL. Удобен для интерфейсов с разными экранами, сложнее с кешированием и ограничением тяжёлых запросов;
- gRPC: вызов удалённых методов поверх HTTP/2, контракт в файле
.proto, данные в бинарном Protobuf. Типичен для связи микросервисов внутри контура, браузер напрямую с ним не работает; - JSON-RPC и XML-RPC: вызов метода по имени, проще SOAP и без жёсткой схемы;
- WebSocket и SSE: постоянное соединение, сервер сам присылает события. SSE работает в одну сторону, WebSocket в обе;
- вебхуки: система сама вызывает ваш URL при событии, вместо того чтобы вы её опрашивали;
- обмен через брокер: Kafka, RabbitMQ. Строго говоря, это не API в привычном смысле, но в интеграциях его выбирают не реже REST. Контракт описывают в AsyncAPI.
Дальше покажите логику выбора. Нужен ли ответ сразу или можно асинхронно, что происходит при недоступности получателя, нужна ли гарантия доставки, как обрабатываются повторы (идемпотентность), кто владелец контракта и как он версионируется.
Где спотыкаются
Говорят, что SOAP «безопаснее» REST. Защиту задают TLS, аутентификация и подпись, а не формат сообщений. У SOAP есть стандарт WS-Security, но REST с mTLS и токенами защищён не хуже.
Путают стиль, протокол и транспорт: REST это архитектурный стиль, GraphQL язык запросов, WebSocket транспорт. Ставить их в один ряд можно, но различие стоит проговорить.
Описывают интеграцию только для успешного сценария. Таймаут, дубль сообщения, изменение контракта и порядок событий как раз и составляют главную часть спецификации аналитика.