如果所有消费者都以相同的方式使用相同的 API,为什么我们应该为每个消费者准备 1 个 Pact 文件?

Why should we have 1 Pact file for EVERY consumer if all consumers use same API in same way?

我正在尝试在我们公司引入 Pact 框架,提出的问题之一如下:

场景:这个 xyz API 被 40 个消费者调用,每个消费者目前都需要相同的功能。那么我们为什么要维护 40 个 Pact 文件而不是只维护一个文件呢?

考虑到契约文件的维护,有没有比为每个消费者提供一个契约文件更好的方法?

如果您有 40 个消费者使用完全相同的功能,那么使用一个契约文件进行所有这些交互不会有问题。

但是,我发现很难相信这是您的情况,而且据我在现实中所见,从未真正发生过。您的提供者可能拥有所有这些功能,但每个消费者都不必测试该功能,除非您的消费者实际使用它。此外,每个消费者可能有不同的方式 call/access 使用不同类型的数据 headers 或 URL 的此功能,这使其独一无二,并且需要针对所有潜在优势对提供者进行全面测试案例。

此外,除非消费者更新以使用此新功能,否则没有理由更新契约文件。重点是尝试为每个 consumer-provider 交互创建独立的文件;但是,当您有多个消费者到提供者时,这确实会增加维护。

我们将收集您的反馈,看看我们可以为产品的未来做些什么,以使此维护更容易进行或将影响降至最低。