Pact:在消费者端使用查询参数,但将其从合约中排除

问题描述 投票:0回答:1

想象一下这样的场景:被测试的消费者生产代码在调用提供者时添加 API 密钥作为查询参数,因为消费者和提供者之间的某些中间层(通常是 API 网关)需要它。

在某些情况下,此 API 密钥作为查询参数对于成为 Pact 合约的一部分没有多大意义。

但是,如果不添加到合约中,消费者测试中根据合约创建的模拟服务器将与实际添加查询参数的查询不匹配。因此无法在消费者端使用模拟服务器编写单元测试。

在匹配查询参数以查找适当的响应时,有没有办法让消费者模拟服务器忽略请求中实际存在的查询参数?

(在 JVM(Java 和/或 Scala)上下文中询问是否重要)。

pact pact-jvm pact4s
1个回答
0
投票

本文详细介绍了一般意义上处理身份验证的一些细节,本文](https://docs.pact.io/recipes/apigateway)可能对 API 网关特别有帮助。

提供商验证期间查询字符串的存在是否会导致问题?如果提供者只是忽略它不关心的事情(Postel 定律),那么它可能最简单地保持这种方式。

如果它导致问题,我会将其保留在消费者合约中,并考虑在提供者验证之前通过使用请求过滤器将查询字符串从请求中删除来修改它。

© www.soinside.com 2019 - 2024. All rights reserved.