post - 无法将结果发布给契约经纪人
问题描述
我正在尝试使用以下命令在 localhost:9292 上的协议代理主机上发布验证结果:
curl -XPOST -H 'Content-Type: application/json' -d@/home/ec2-user/pact-ruby/example/zoo-app/spec/pacts/zoo_app-animal_service.json ${verification_url}
在这里,我无法从下面的语法中获取验证 url 的值。
BASE_URL="http://localhost:9292"
response_body=$(curl ${BASE_URL}/pacts/provider/Bar/consumer/Foo/latest)
verification_url=$(echo "${response_body}" | ruby -e "require 'json'; puts JSON.parse(ARGF.read)['_links']['pb:publish-verification-results']['href']")
curl -XPOST -H 'Content-Type: application/json' -d@script/foo-bar-verification.json ${verification_url}
目前我已经在以下网址进行了验证:
../animal-service > specs/service_consumers> rake:pact-verify-at[]
。
我无法弄清楚如何从上述请求中检索验证 URL。我错过了什么,请帮忙。
解决方案
Provider 可以通过两种方式验证来自 Pact Broker 的已发布协议。
- 在 Pact Broker 本身上设置了一个 webhook ' contract content changed
${pactbroker.pactUrl}
',它通过传递给它来调用 Provider 的验证构建。 - Broker 要求您为您发布的每个合约分配一个消费者版本
${commit_hash}
。在运行提供者验证时,提供者需要指定它想要验证的消费者版本。然后,代理将返回该特定消费者版本的最新合同版本。
推荐阅读
- python - 当用户输入 y 时,如何使程序重新运行?
- javascript - 无法使用带有 Angular 的 Fabricjs 在画布内加载图像
- java - Spring应用程序未部署到heroku
- java - Jackson JsonUnwrapped 属性冲突
- bash - 为什么我不能在 bash 中使用“cat >>”附加
- amazon-web-services - 使用 Glue 将多个数据文件合并为一个 - 作业成功但没有输出文件
- python - 是否可以根据文件名对目录中的文件进行排序?
- selenium - 如何使用 Selenium WebDriver Java 单击带有 ElementNotInteractableException 的复选框?
- vba - 如果文件夹中有多个匹配项,我可以在重命名文件时步进/错开 PowerAutomate 吗?
- c++ - 如何使用模板结构而不是函数检查容器的类型?