sonarqube7.2版本web api简析

sonarqube7.2版本web api简析

本文介绍sonarqube的部分实用Web API,并试图联系实际进行分析,方便集成.以7.2版本为例,下载移步官网.

Web API文档路径

安装并部署7.2版本的sonar之后(推荐在linux上安装),在浏览器上打开sonar,默认是ip:9000端口.

http://{ip}:9000/web_api即是sonar的api文档. 由于国内资源较少,当时在官网看了半天文档又查了一堆才发现这个预设的路径.这也是为什么写这篇文章,我认为这样的工具是值得推广的.

认证api

部分的sonar api功能需要依靠权限使用,sonar才用的是Basic Auth,就是最普通的认证.

web_api/api/authentication下可以查看对应的认证api.

例如:

POST api/authentication/login 参数是login和password 没有特别说明的话,这里的login和password都是admin,可以在sonar页面的最上方Administration里点进行密码修改,也可以直接修改config文件.

如果使用POSTMAN测试接口需要认证的sonar GET接口,可以在postman的认证里,选basic auth,然后填login和password,再发GET请求就可以了.

重复度api

GET api/duplications/show

例子参数是key=my_project:/src/foo/Bar.php,使用该接口可以拿某个代码文件的重复度分析,似乎作用不大.后面会讲另一个比较有用的.

issues api

页面在web_api/api/issues,issues意为问题,告警,github上常见这个单词,还是建议多熟悉英文.

这里的api很多是修改和添加注释等内容,这类api适合自己在sonar之上再封装一层.

如果只是客户端读取sonar的issues信息,可以使用GET api/issues/search,这个api的参数非常多,在我看来有几个好用,然后讲解一下.

componentKeys 这是可选参数,意思是组件key,查阅后发现这个key可以代表projectKey,模块的key,单个文件的key,而且可以用逗号隔开传入多个.

比如:my_project,my_project1,my_project2 这样是查了三个工程的issue情况.

这里讲解一下projectKey的概念:

点进自己的某一个扫描后的项目project,会在右下角发现一个projectKey.如果是maven工程,默认是

severities 问题的等级,如果只需要修改最重要等级的,直接用这个参数去获取要改的部分吧.好用.

其他参数都写挺清晰了.

issue 返回json

"paging": { "pageIndex": 1, "pageSize": 100, "total": 1 },

这部分其实是第一页,每页100个,实际上可以用参数分页查询.

issues节点里是个json数组,内容比较多,讲解几个参数.

{
    "key": "01fc972e-2a3c-433e-bcae-0bd7f88f5123",  issue的唯一key
    "component":   "com.github.kevinsawicki:http-request:com.github.kevinsawicki.http.HttpRequest",  组件Key,这里是具体到类的
    "project": "com.github.kevinsawicki:http-request",  projectKe
    "rule": "checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck",  规则
    "status": "RESOLVED",  解决状态
    "resolution": "FALSE-POSITIVE",  是否误报
    "severity": "MINOR",  告警等级
    "message": "‘3‘ is a magic number.",  告警信息
    "line": 81,
    "hash": "a227e508d6646b55a086ee11d63b21e9",
    "author": "Developer 1",
    "effort": "2h1min",  解决问题需要的时间
    "creationDate": "2013-05-13T17:55:39+0200",
    "updateDate": "2013-05-13T17:55:39+0200",
    "tags": [
      "bug"
    ], 

之后有个flow节点,这个是和数据流规则相关的.

"flows": [
        {
          "locations": [
            {
              "textRange": {
                "startLine": 16,
                "endLine": 16,
                "startOffset": 0,
                "endOffset": 30
              },
              "msg": "Expected position: 5"
            }
          ]
        },
        {

提供locations节点,指定具体的行数.照目前这例子看似乎还只是单文件数据流.

metrics api

metrics,意为度量,在代码扫描中,常常对复杂度,cpd重复代码等进行分析,这也都算metrics,度量的范畴.

Get information on automatic metrics获得自动度量的结果

GET api/metrics/search 这个api可以查找某个项目的所有度量,应该没大用处...

measures api

GET api/measures/componentcomponent 组件key和metricKeys 度量key作为参数,查询某个项目的度量情况,比如重复度,复杂度,行数统计,例如:

metricKeys=ncloc,complexity,violations

先这么多,之后可能继续更新.

原文地址:https://www.cnblogs.com/zhhiyp/p/9716158.html

时间: 2024-10-30 05:28:15

sonarqube7.2版本web api简析的相关文章

分布式服务框架的热挂载以及多版本共存的简析与实现

现行的网络服务要想做大做好必须朝着分布式服务的方向去发展,比如阿里巴巴.京东这种大型的电子商务网站平台都采用了具有各自特色的分布式服务框架.分布式服务框架就是将各种服务挂载在不同的服务器上,然后进行整体的调度管理对外提供网络服务. 本博文主要讲解分布式服务的热挂载以及多版本服务共存的原理和实现,热挂载顾名思义就是在不停止框架服务进程的情况下挂载服务. 首先要实现服务的热挂载无非就是两种方式,一种是需要部署服务时候的手动操作,以及服务框架的主动监测.在这里讲解更加智能化的框架主动监测以及实现. 要

SSDB之php API简析

一.介绍 SSDB的PHP API方便的提供了php的开发接口.git地址 https://github.com/ideawu/ssdb.git ,SSDB官方文档地址  http://ssdb.io/zh_cn/ 二.SSDB类结构图 PHP 接口源码文件在 /api/php/SSDB.php 三.SSDB网络协议 报文 Packet := Block+ '\n' Block := Size '\n' Data '\n' Size := literal_integer Data := size

[转]使用ASP.NET Web API 2创建OData v4 终结点

本文转自:http://www.cnblogs.com/farb/p/ODataAspNetWebAPI.html 开放数据协议(Open Data Protocol[简称OData])是用于Web的数据访问协议.OData提供了一种对数据集进行CRUD操作(Create,Read,Update,Delete)的统一方式.Asp.Net Web API支持该协议的v3 和v4版,甚至可以创建一个和v3终结点并排运行的v4终结点.该博文演示了如何创建支持CRUD操作的OData v4终结点. 用到

web应用构架LAMT及tomcat负载简析

Httpd    (mod_jk.so) workers.properties文件 uriworkermap.properties文件 <--AJP1.3--> Tomcat  --> jdk 大致流程:apache服务器通过mod_jk.so 模块处理jsp文件的动态请求.通过tomcat worker等待执行servlet/JSP的tomcat实例.使用 AJP1.3协议与tomcat通信.tomcat有借助jdk解析. 负载就是 多台tomcat.共同解析apache发送的jsp请

支持多个版本的ASP.NET Core Web API

基本配置及说明 版本控制有助于及时推出功能,而不会破坏现有系统. 它还可以帮助为选定的客户提供额外的功能. API版本可以通过不同的方式完成,例如在URL中添加版本或通过自定义标头和通过Accept-Header作为查询字符串参数. 在这篇文章中,我们来看看如何支持多版本的ASP.NET Core Web API 创建一个ASP.NET Core Web API应用程序.通过 NuGet 安装此软件包:Microsoft.AspNetCore.Mvc.Versioning,打开Startup.c

ASP.NET Web API中实现版本的几种方式

在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的controller. config.Routes.MapHttpRoute( name: "Food", routeTemplate: "api/v1/nutrition/foods/{foodid}", defaults:... ) config.Routes.MapHttp

ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料

本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/  谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1-1 手把手引进门 1-2 进阶 1-3 杂项 (相关理论知识) 第一篇含两个步骤. 1-1-1 ASP.NET Core & Entity Framework Core 后端(内核)含两篇 ( 第一篇链接    

ASP.NET 异步Web API + jQuery Ajax 文件上传代码小析

该示例中实际上应用了 jquery ajax(web client) + async web api 双异步. jquery ajax post 1 $.ajax({ 2 type: "POST", 3 url: "/api/FileUpload", 4 contentType: false, 5 processData: false, 6 data: data, 7 success: function (results) { 8 ShowUploadControl

简析 .NET Core 构成体系

简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代码开发.部署.运行过程 总结 前文介绍了.NET Core 在整个.NET 平台所处的地位,以及与.NET Framework的关系(原文链接),本文将详细介绍.NET Core 框架的构成和各模块主要功能,以及如何实现跨平台. 上图描述了 .NET Core的系统构成,最上层是应用层,是开发基于UI应用的