1

我想使用 REST api 调用来轮询我的 SonarQube 6.3 实例的质量门执行状态。我经历了几次 api 调用,但没有给我预期的结果。

我尝试使用这些网址:

  1. http://localhost:9000/api/resources
  2. http://localhost:9000/api/components

但我总是得到这样的回应:

{"errors":[{"msg":"Unknown url : /api/resources"}]}

如何通过 REST 轮询质量门执行状态?

4

3 回答 3

3

http://localhost:9000/web_api列出了服务器上可用的 Web 服务端点,并为每个端点提供了文档。在我的 6.3 副本中,“api/resources”的文档说

自 6.3 起已删除,请改用 api/components 和 api/measures

你说你已经尝试过http://localhost:9000/api/components并得到一个错误。那是因为那里实际上没有 Web 服务。您必须为所需的服务添加限定符,例如/api/components/search,如该组服务的文档中所述:http://localhost:9000/web_api/api/components

于 2017-06-20T13:36:32.857 回答
1

事实上,正确的 SonarQube web api url 中有 5 个部分。domain/api/controller/action?parameters例如,他们可以这样看http://localhost:9000/api/components/show?componentKey=blue

所以我们有:

  1. domainhttp://localhost:9000在示例中表示为,它是您可以调用 SonarQube 服务器的地址
  2. api/api在示例中表示为,它是SonarQube中所有Web服务的基本路径
  3. 控制器/components在示例中由 表示,它表示与给定主题(问题、配置文件、组件等)相关的 Web 服务池
  4. action/show在示例中用 表示,它是一个可以通过 web 服务执行的单元动作,例如:显示、搜索、列出、备份、删除等。
  5. 参数?componentKey=blue在示例中表示为,它们并不总是强制性的,但通常允许您指定更多信息以获得更精确的结果

您在这里忘记的是指定操作的方法。

于 2017-06-20T19:57:02.567 回答
0

http://localhost:9000/api/project_analyses/search?project=myProjectname&category=QUALITY_GATE

此查询返回了我的质量门的状态。这里我提到了项目名称为 myProjectname

于 2017-06-21T06:06:37.680 回答