Катим в прод | Александр Калыргин
29.01
🚀 Что такое контракт и что он может включать?
Секция: Интеграции/HTTP/REST 👣 Востребованность на собесе: Классика 🔥
Обычно описанием контракта в команде занимается именно системный аналитик. По-сути это «договор» между двумя системами или сервисами, который описывает:
— как они общаются — что передают — какие правила соблюдают
Представьте, что вы заказываете что-то в ресторане. Контракт — это меню: вы знаете состав блюда, сколько его ждать и сколько платить. Без меню — рискуете получить блюдо, на которое у вас аллергия или, например, нет денег 😋
⚙️ Что может включать в себя контракт?
Наполненность варьируется от метода к методу, но общие черты можно выделить такие:
1. Название метода 2. Общее описание 3. Алгоритм работы 4. Пример запроса 4.1. Описание доступа к методу (эндпойнт, авторизация) 4.2. Тело запроса 5. Пример ответа 5.1. Код ответа и описание 5.2. Тело ответа 6. Маппинг данных 7. Дополнительные требования (например, сервис отвечает за 200 мс ⏱)
💡 Зачем это нужно?
1. Уменьшить неопределенность Все знают правила, никто не «ломает» чужой код. 2. Ускорить разработку Команды разработки работают параллельно, сверяясь с контрактом. 3. Вести документации Новый разработчик или аналитик быстро поймет, как все устроено.
🚀 Простые советы
1. Фиксируйте контракты до начала разработки Так есть шанс, что «возможных изменений» в контракте не будет. Доработки под контракт - отнимает время каждой команды.
2. Используйте инструменты вроде OpenAPI или AsyncAPI Облегчите жизнь разработчикам и себе. Разработка сможет базово сгенерировать код из вашей документации, а у вас будет всегда актуальная документация.
3. Не забывайте о масштабировании Закладывайте в ваши контракты возможные изменения или добавление фич, но делайте это с умом. Так, например, не стоит называть параметры по типу: passportRussia. Если у вас появится задача добавить иностранный паспорт - придется переделывать контракт или делать костыль.
4. Тестируйте контракты до разработки Если делаете функционал с нуля, то мастхев пройти по всему сценарию и проверить, что контракт передает/получает все необходимые данные. Часто бывают ситуации, когда из-за обилия данных теряются нужные параметры.
А вы работаете с контрактами? 👨💻
#классика #интеграции_HTTP_RESTеще контент в этом сообществе
еще контент в этом соообществе
Катим в прод | Александр Калыргин
29.01
войдите, чтобы увидеть
и подписаться на интересных профи