Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果所有消费者以相同的方式使用相同的API,为什么我们应该为每个消费者提供一个Pact文件?_Java_Api_Pact - Fatal编程技术网

Java 如果所有消费者以相同的方式使用相同的API,为什么我们应该为每个消费者提供一个Pact文件?

Java 如果所有消费者以相同的方式使用相同的API,为什么我们应该为每个消费者提供一个Pact文件?,java,api,pact,Java,Api,Pact,我试图在我们公司介绍Pact框架,提出的一个问题如下: 场景:此xyz API由40个使用者调用,每个使用者当前都需要相同的功能。那么,我们为什么要维护40个Pact文件,而不是只维护一个文件呢 考虑到pact文件的维护性,还有什么比为每个消费者提供一个pact文件更好的方法吗?如果有40个消费者使用完全相同的功能,那么为所有这些交互使用一个pact文件不会有问题 然而,我发现很难相信这是你的情况,就我在现实中所看到的而言,从来没有发生过。您的提供商可能拥有所有这些功能,但除非您的消费者实际使用

我试图在我们公司介绍Pact框架,提出的一个问题如下:

场景:此xyz API由40个使用者调用,每个使用者当前都需要相同的功能。那么,我们为什么要维护40个Pact文件,而不是只维护一个文件呢


考虑到pact文件的维护性,还有什么比为每个消费者提供一个pact文件更好的方法吗?

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

然而,我发现很难相信这是你的情况,就我在现实中所看到的而言,从来没有发生过。您的提供商可能拥有所有这些功能,但除非您的消费者实际使用,否则每个消费者都不必测试这些功能。此外,每个使用者可能有不同的方式使用不同类型的数据、标题或URL调用/访问此功能,这使得它具有唯一性,并且需要针对所有潜在的边缘情况对提供程序进行全面测试

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


我们将听取您的反馈,看看我们能为产品的未来做些什么,以使维护更容易或将影响降至最低。

每个消费者是否都使用每个字段?如果消费者不使用或不关心某个字段,则不要将其包含在pact文件中。这使提供者能够在运行验证规范时立即看到哪些消费者会受到该字段更改的影响。如果一个API实际上有40个使用者,那么他们可能会使用一个共享的客户端库,而契约只在客户端库和API之间。是的,API类似于从共享驱动器下载文件。因此,所有消费者都期望相同的产量。