【问题标题】:How to Get a Json from api/metrics of sonarqube?如何从 sonarqube 的 api/metrics 中获取 Json?
【发布时间】:2015-06-01 17:44:52
【问题描述】:

我尝试使用 api/metrics 的 GET 方法来检索 JSON 以用于我的程序,但文档缺少描述在 requestUrl 中使用的所有参数。

例如,在我的程序中,我使用 Google Chrome 控制台发现 requestUrl 是这个:

http://localhost:9000/api/resources?resource=my%3AjavaSample%3AMandria%2Fsrc%2Fmandria%2FIllnessException.java&metrics=new_technical_debt%2Cblocker_violations%2Cburned_budget%2Cbusiness_value%2Cclasses%2Ccomment_lines%2Ccomment_lines_density%2Ccomplexity%2Cclass_complexity%2Cfile_complexity%2Cfunction_complexity%2Cbranch_coverage%2Cnew_it_branch_coverage%2Cnew_branch_coverage%2Cconfirmed_issues%2Ccoverage%2Cnew_it_coverage%2Cnew_coverage%2Ccritical_violations%2Cdirectories%2Cduplicated_blocks%2Cduplicated_files%2Cduplicated_lines%2Cduplicated_lines_density%2Cfalse_positive_issues%2Cpackage_tangles%2Cfiles%2Cfile_complexity_distribution%2Cfunctions%2Cfunction_complexity_distribution%2Cgenerated_lines%2Cgenerated_ncloc%2Cit_branch_coverage%2Cit_coverage%2Cit_line_coverage%2Cit_uncovered_conditions%2Cit_uncovered_lines%2Cinfo_violations%2Cviolations%2Cline_coverage%2Cnew_it_line_coverage%2Cnew_line_coverage%2Clines%2Cncloc%2Clines_to_cover%2Cnew_it_lines_to_cover%2Cnew_lines_to_cover%2Cmajor_violations%2Cminor_violations%2Cnew_blocker_violations%2Cnew_critical_violations%2Cnew_info_violations%2Cnew_major_violations%2Cnew_minor_violations%2Cnew_violations%2Copen_issues%2Coverall_branch_coverage%2Cnew_overall_branch_coverage%2Coverall_coverage%2Cnew_overall_coverage%2Coverall_line_coverage%2Cnew_overall_line_coverage%2Cnew_overall_lines_to_cover%2Coverall_uncovered_conditions%2Cnew_overall_uncovered_conditions%2Coverall_uncovered_lines%2Cnew_overall_uncovered_lines%2Cpackage_cycles%2Cpackage_feedback_edges%2Cpackage_tangle_index%2Cprojects%2Cpublic_api%2Cpublic_documented_api_density%2Cpublic_undocumented_api%2Calert_status%2Creopened_issues%2Csqale_rating%2Cskipped_tests%2Cstatements%2Cteam_size%2Csqale_index%2Csqale_debt_ratio%2Cuncovered_conditions%2Cnew_it_uncovered_conditions%2Cnew_uncovered_conditions%2Cuncovered_lines%2Cnew_it_uncovered_lines%2Cnew_uncovered_lines%2Ctests%2Ctest_execution_time%2Ctest_errors%2Ctest_failures%2Ctest_success_density

是否可以找到更详细的文档,或者我尝试解决问题的方式不正确?

【问题讨论】:

  • 我已经访问了 SonarSource API 文档,但对我来说真的很模糊。有人知道在哪里可以找到更好的文档吗?

标签: json sonarqube


【解决方案1】:

【讨论】:

  • 好的,我明白这一点,但我不清楚如何从外部程序调用它。如何正确地做到这一点?
【解决方案2】:

针对您的问题,如何从外部评论中致电:

如果您想从 Java 程序调用 SonarQube Web 服务 API,您可以使用 Apache HTTP 客户端:

public static void main(String[] args) throws ClientProtocolException, IOException {

    HttpGet httpGet = new HttpGet("http://localhost:9000/api/resources?metrics=lines");

    try(CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = httpClient.execute(httpGet);) {
        System.out.println(response.getStatusLine());
        HttpEntity entity = response.getEntity();
        System.out.println(EntityUtils.toString(entity));
    }
}

在这种情况下,它会打印 SonarQube 上的所有项目,并附加度量“行”。您可以将多个指标添加到列表中,以逗号分隔:

"http://localhost:9000/api/resources?metrics=lines,blocker_violations"

【讨论】:

    猜你喜欢
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2018-06-02
    • 2016-01-12
    • 2021-12-26
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多