azure-devops - Azure 管道门 - 调用 Rest API 错误 - 所有请求都需要 api-version 查询参数 (?api-version=)
问题描述
我有一个正在部署 API 的天蓝色管道。部署后,我有一个门将调用 API 并在部署到下一个环境之前检查成功状态。问题是每次运行此门时都会出现此错误:
2021-05-27T19:42:30.3298765Z GET https://management.azure.com/https://apim-myapi.azure-api.net/api/Vehicle/Makes?year=2017?api-version=2020-09-01.12.0
Response Code: 0
Response: An error was encountered while processing request. Exception: {"error":{"code":"MissingApiVersionParameter","message":"The api-version query parameter (?api-version=) is required for all requests."}}
Exception Message: The remote server returned an error: (400) Bad Request. (type WebException)
Evaluation of expression 'eq(root['status'], 'successful')' failed.
Exception Message: Error parsing API response into a JSON object. (type DistributedTaskException)
我尝试向我正在使用的 URL 添加不同的版本,但我总是遇到同样的错误。即使看起来我正在传递它想要的价值!
有人用过这个门法吗?版本控制参数如何工作?
更新:添加我正在使用的门设置:
解决方案
我不明白为什么您的请求看起来像这样:
GET https://management.azure.com/https://apim-myapi.azure-api.net/api/Vehicle/Makes?year=2017?api-version=2020-09-01.12.0
这是一个电话还是两个电话?因为在我看来,您正在发出两个请求并收到两个错误。
所以第一个https://management.azure.com
是APIM REST API地址。对于这个调用,当你这样调用它时,你会得到MissingApiVersionParameter
错误,因为它需要你指定api-version
参数。
另一方面,您也在调用您的 API https://apim-myapi.azure-api.net/api/Vehicle/Makes?year=2017?api-version=2020-09-01.12.0
(根据您的描述是您想要做的)并且您得到
Evaluation of expression 'eq(root['status'], 'successful')' failed.
的显然是来自 api 策略的错误。
api-version
参数与您的 API 调用无关。因此,从您的调用中删除https://management.azure.com
并api-version
调用https://apim-myapi.azure-api.net/api/Vehicle/Makes?year=2017
(这就是对 API 的请求应该是这样的)并专注于expression failed
错误。
推荐阅读
- mysql - 如何在mysql中以一个顺序获得一组结果,并以不同顺序获得另一组行?
- wordpress - 无法使用禁用 wordfence 的 wordpress 管理员登录
- python - 在 python 中的命令中添加定义
- ibm-mq - 我如何知道 IIB 中的 LASTMOVE 何时返回 true 或 false?
- javascript - 在 React 中删除 Firestore 的文档后,它应该从屏幕上消失。并在编辑文档时立即更新
- ruby-on-rails - Simple Form + Select2:无法输入动态标签
- laravel - 如何向与通常端口不同的 api 发出请求
- python - AttributeError:模块“tensorflow_federated.python.simulation”没有属性“HDF5ClientData”
- javascript - 如何在 React 中使用函数编辑字符串
- c# - 带有 nx monorepo 的 Azure Pipelines 警告