SonarQube Api调用指南

本文介绍了如何使用SonarQube的RESTAPI,包括从何处获取接口文档,如何进行接口认证,处理HTTPS的SSL认证,以及提供了一个代码示例,演示了如何构造HTTP请求并处理返回的JSON数据。
摘要由CSDN通过智能技术生成

好几年前写过一篇sonar api调用的文档,很多人看,但是当时写的比较简陋,很多小伙伴在下方留言,也答应过一些小伙伴些一篇示例,本文主要目的是一篇扫盲贴。

一、接口文档

要使用sonarqube的api接口,你首先要知道接口文档在哪里
在这里插入图片描述
我们打开任意一个sonarqube平台的页面,拉到最底端,这里有一个web接口的链接,点击进去,就能跳转到sonarqube的rest api文档
在这里插入图片描述
我们只需要按照文档发起一个http请求,就能拿到我们想要的数据或者其他操作,其中,点击参数,我们可以查看具体的参数信息
在这里插入图片描述
点击响应示例,即可查看接口的返回字段
在这里插入图片描述

二、接口认证

很多人对sonarqube的操作比较迷惑,按说我们只需要拿着token就能直接调用sonarqube的接口,但是调用接口后返回的确是401,这里我们需要按照官方文档进行处理,对账号和密码进行base64加密后,放到head的Authorization字段

DatatypeConverter.printBase64Binary(("admin:123456").getBytes(StandardCharsets.UTF_8))
headers.put("Authorization", "Basic " + sonarConfig.getSonarToken());

否则会报401的错误 。
其次我们在调用过程中需要注意的是如果sonarqube是https请求,我们需要考虑ssl认证,除非对安全非常严格的情况下,我们需要引入证书,否则,我们直接跳过即可。

    private static SSLContext createSSLContext() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
        return SSLContexts.custom().loadTrustMaterial(null, (x509Certificates, s) -> true).build();
    }
    
	httpClient = HttpClients.custom()
	       .setDefaultRequestConfig(requestConfig)
	       .setSSLSocketFactory(new SSLConnectionSocketFactory(createSSLContext())).setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
	       .build();    

上述代码中,使用的httpClient,这里设置跳过认证

三、代码示例

为了更加方便使用者,这边编写了一个代码示例,封装httpClient
在这里插入图片描述
代码结构如上图所示,我们将加密后的账号密码串放入配置文件,这里每次接口读取的时候获取配置文件中的认证信息,发送起http请求即可获取想要的结果
在这里插入图片描述
这里有个小技巧,接口返回的数据是一个json字符串,我们对数据操作不太方便,如果我们使用idea,可以使用这样的一个插件,将json字符串转化为java bean对象
在这里插入图片描述

在这里插入图片描述
这边编写了一个使用示例,代码仓在这里

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值