- Pact: Популярный инструмент для тестирования контрактов Consumer-Driven Contracts (CDC). Поддерживает множество языков и платформ.
- Spring Cloud Contract: Инструмент для тестирования контрактов в экосистеме Spring. Может использоваться для CDC и Producer-side contract testing.
- Swagger/OpenAPI: Спецификация, описывающая API. Может использоваться для генерации клиентских stubs и валидации ответов.
- JSON Schema: Язык для описания структуры JSON документов. Используется для валидации контрактов.
- Protobuf (Protocol Buffers): Сериализационный формат, может использоваться для определения контрактов между сервисами.
- gRPC: RPC фреймворк с использованием Protobuf для определения сервисных контрактов.
Сравнение Pact и Spring Cloud Contract:
| Признак | Pact | Spring Cloud Contract |
|---|
| Подход | CDC (Consumer-Driven Contracts) | CDC и Producer-side contract testing |
| Экосистема | Агностик к языку и фреймворку | Ориентирован на экосистему Spring |
| Генерация stubs/mocks | Да (Consumer-side) | Да (Producer-side) |
| Брокер контрактов | Pact Broker | Git, Maven Central и др. |
| Поддержка протоколов | HTTP, сообщения | HTTP, сообщения |
Пример использования Pact (DSL):
ruby