🚀 Что такое контракт и что он может включать?

Секция: Интеграции/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. Тестируйте контракты до разработки Если делаете функционал с нуля, то мастхев пройти по всему сценарию и проверить, что контракт передает/получает все необходимые данные. Часто бывают ситуации, когда из-за обилия данных теряются нужные параметры.

А вы работаете с контрактами? 👨‍💻

@katimvprod

#классика #интеграции_HTTP_REST
🚀 Что такое контракт и что он может включать? | Сетка — новая социальная сеть от hh.ru
repost

406

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь