为何Azure DevOps REST API返回空服务终结点列表?是否只能用隐藏API?
问题解答
你没有遗漏配置,无需依赖隐藏API,官方API即可正常获取服务连接,问题主要出在以下几个方面:
1. 权限或凭据范围问题
调用官方Endpoints - Get API需要确保所用凭据(比如个人访问令牌PAT)具备**Service Connection (Read)**权限:
- 如果用PAT,创建时需勾选
Service Connections的Read权限范围; - 确认凭据的权限覆盖了目标服务连接的层级(项目级或组织级)。
2. 服务连接层级与API路径不匹配
服务连接分为项目级和组织级:
- 若你的服务连接是组织级的,调用项目级API(
/org1/proj1/_apis/serviceendpoint/endpoints)会返回空列表,需改用组织级API路径:curl --url 'https://dev.azure.com/org1/_apis/serviceendpoint/endpoints?api-version=7.0' - 若服务连接是项目级的,检查是否在API请求中指定了正确的项目路径。
3. API参数补充(可选)
部分场景下,需添加actionFilter参数确保返回所有类型的服务连接:
curl --url 'https://dev.azure.com/org1/proj1/_apis/serviceendpoint/endpoints?api-version=7.0&actionFilter=All'
关于隐藏API的说明
你提到的带__rt=fps&__ver=2.0参数的接口是Azure DevOps内部使用的非官方API,没有官方文档支持,接口逻辑、参数随时可能变更,绝对不建议在生产环境中使用,官方Endpoints - Get API才是稳定可靠的选择。
内容的提问来源于stack exchange,提问作者Iain Samuel McLean Elder
相关产品推荐
相关产品推荐

