🔌 API: REST, SOAP, gRPC и интеграции
API — это меню в ресторане. Ты не идёшь на кухню, а заказываешь по названиям из списка. Меню и есть контракт: что можно заказать и что получишь
Сравнение
| REST | SOAP | gRPC | |
|---|---|---|---|
| Формат | JSON, иногда XML | Только XML | Бинарный, protobuf |
| Контракт | OpenAPI, необязателен | WSDL, обязателен | proto-файл, обязателен |
| Где встречается | Веб, мобильные, публичные API | Банки, госсистемы, 1С, старые интеграции | Между микросервисами |
| Плюсы | Просто, читаемо, везде поддержка | Строгость, встроенная безопасность и транзакции | Скорость, строгая типизация |
| Минусы | Нет строгости из коробки | Тяжёлый, многословный | Не для браузера напрямую, сложнее отлаживать |
Как это работает
REST: сервис выставляет адреса вроде /orders и /orders/42. Создать заказ — POST, прочитать — GET, изменить — PUT или PATCH, удалить — DELETE. Ответ содержит код: 200 успех, 404 не найдено, 500 ошибка на сервере. Эти коды полезно знать, чтобы понимать логи и разговор команды
SOAP: запрос и ответ в XML-конвертах, строго по описанию WSDL. Если контрагент говорит «у нас SOAP», это значит долгое согласование контракта и мало гибкости
Интеграция как проект
- Контракт раньше кода. Договоритесь о формате данных и ошибках до разработки, иначе обе стороны сделают по-своему
- Тестовый контур. Запроси его у контрагента первым делом, его отсутствие — главный риск
- Заглушки. Пока контур не дали, команда работает на моках по контракту
- Версионирование. Изменение API ломает всех клиентов, нужны версии и переходный период
- Ошибки и повторы. Что делать, если ответ не пришёл: повторить, отложить, сообщить
Пример из жизни
Интеграция с банком по SOAP. Банк прислал WSDL на 200 страниц и тестовый контур через пять недель после старта. Менеджер заранее попросил команду написать заглушку по WSDL и договорился с банком об ответственном за вопросы по контракту. Когда контур дали, переключение заняло два дня. Без заглушки команда простаивала бы месяц
Важно запомнить
- API — договор, его согласование занимает больше времени, чем код
- REST везде, SOAP у банков и госсистем, gRPC между сервисами
- Тестовый контур и контракт — первые два вопроса менеджера на любой интеграции
Как ответить на собесе
Что такое REST и SOAP и в чём разница?
«Это два способа, которыми системы общаются друг с другом. REST — стиль поверх HTTP: ресурсы по адресам, стандартные операции, данные обычно в JSON. Он простой и используется почти везде: веб, мобильные приложения, публичные API. SOAP — протокол на XML со строгим контрактом в WSDL, тяжелее и многословнее, зато со встроенной безопасностью и строгой проверкой. Он живёт в банках, госсистемах и старых корпоративных интеграциях. Для менеджера разница практическая: интеграция по SOAP означает долгое согласование контракта и мало гибкости, это нужно закладывать в сроки»