Система контрактов. Какие есть готовые инструменты?
Наша молодая команда столкнулась с проблемой. Мы тратим очень много времени на обсуждения какие данные должны приходить по эндпоинтам в нашем rest api. Хотим решить эту проблему при помощи системы контрактов.
Я слышал о такой при реализации микросервисной архитектуры. Для каждого сервиса создаем свой контракт - указываем какие данные он получает, что возвращает и так далее. В общем описываем как можно подробнее информацию по микросервису.
Мы хотим применить подобную идею. Фронт анализирует данные, которые ему нужны. Пишет контракт структуры необходимых данных, дает словесное описание контракту, отправляет беку. Бек корректирует данные при необходимости согласовывая их с фронтом, указывает данные, которые ему нужны (тоже в контракте), согласовывает все с фронтом и реализует контракт. После того как контракт реализован заказчик или исполнитель могут прописать данные для тестов в нем же. То есть указать массив тесовых данных и результат, который хотят получить
В дальнейшем хотим на основе этих контрактов генерировать доку и даже генерировать тесты. Для этого есть и описание, и парамеры, и тестовые данные.
Сейчас я ищу инструменты. Может быть есть какие-то утилиты, которые могут облегчить написание контрактов и их согласование, может быть таким образом уже генерируются тесты и дока?