Nexus使用Api进行操作

 更新时间:2018年12月27日 10:04:21   作者:liumiaocn  
今天小编就为大家分享一篇关于Nexus使用Api进行操作,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

Nexus提供了RestApi,但是一部分Api仍然需要结合Groovy等进行操作,在3.3及其以后的版本上进行了强化,但是和普通的RestApi相比仍有一些“使用上的特性”。这篇文章以创建raw的repository为例,来确认一下相关的使用方法。

前提准备

准备可运行的Nexus,这里的版本为3.2.1

Api机制

这篇文章介绍的是Nexus3推出之初的Api的设计思路,主要是通过结合groovy脚本来完成相关的功能,简单的来说需要用户自行提供groovy脚本,nexus提供上传和运行脚本的接口,虽然有些粗糙,但是大部分功能毕竟留出了一个方式供用户去使用,强大的groovy脚本中至于需要实现什么样的功能,那就看用户自己的需要了。在一定程度上来说,算是一个能够创造API的API

使用步骤

步骤1: 以json文件为载体,创建可运行的groovy脚本

格式大体如下:

{
 "name": "脚本名称",
 "type": "groovy",
 "content": "groovy语句"
}

注意事项:

  • 注意双引号和单引号的使用
  • 脚本的名称会成为后续API的一部分,请注意命名

步骤2: 上传json文件

使用如下方式和接口即可上传相应包含groovy操作的json文件

  • 接口:/service/siesta/rest/v1/script
  • 方法:POST
  • 文件:将步骤1中准备的文件作为POST的内容传入

步骤3: 执行groovy文件

使用如接口即可执行在步骤2中上传的groovy脚本

  • 接口:/service/siesta/rest/v1/script/脚本名称/run
  • 方法:POST

此处需要注意脚本名称也会是执行接口中的一部分,命名变得灰常重要。

使用示例

这里使用上述方式来演示一下如何在Nexus中创建一个Raw类型的repository。

步骤1: 以json文件为载体,创建可运行的groovy脚本

因为创建repository需要指定blob,如果没有指定则会使用default,但是如果项目众多,将会导致default非常巨大,在前面介绍nexus的使用实践中也给出过对于不同的repository创建自己的blob,所以这里创建如下的json文件:

liumiaocn:~ liumiao$ cat rawrepotest1.json 
{
 "name": "rawrepotest1",
 "type": "groovy",
 "content": "def rawStore = blobStore.createFileBlobStore('rawrepotest1', 'raw');repository.createRawHosted('rawrepotest1', rawStore.name);"
}
liumiaocn:~ liumiao$

建议:因为Nexus的这种使用方式本身就不是非常完整的方式,建议使用的过程中诸如rawrepotest1全部一致,这样blob和repository的关系也比较清楚,无非多上传几个大小可以忽略不计的json文件而已。

步骤2: 上传json文件

liumiaocn:~ liumiao$ curl -X POST -u admin:admin123 --header "Content-Type: application/json" http://localhost:32004/service/siesta/rest/v1/script -d @rawrepotest1.json
liumiaocn:~ liumiao$

步骤3: 执行groovy文件

liumiaocn:~ liumiao$ curl -X POST -u admin:admin123 --header "Content-Type: text/plain" http://localhost:32004/service/siesta/rest/v1/script/rawrepotest1/run
{
 "name" : "rawrepotest1",
 "result" : "RepositoryImpl$$EnhancerByGuice$$13e8178d{type=hosted, format=raw, name='rawrepotest1'}"
}liumiaocn:~ liumiao$

结果确认

blob确认

已经生成相应的blob:rawrepotest1

repository确认

已经生成相应的raw方式的repository:rawrepotest1

小结

Nexus中结合groovy能够实现Api方式的集成,但是这种方式在使用上还有诸多的不变,多次执行是否出错等都成为groovy脚本确认的事项,相关功能是否会强化可能还需要看nexus后续版本的支持情况,和groovy的结合方式会不会是功能过度时期的对应方式还需进一步观察。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 详解linux命令查看服务器上的实时日志

    详解linux命令查看服务器上的实时日志

    在项目开发过程中,在调试的阶段,往往需要debug或者进行查看日志,这篇文章主要介绍了linux命令如何查看服务器上的实时日志,需要的朋友可以参考下
    2022-09-09
  • windows系统搭建WEB服务器详细教程

    windows系统搭建WEB服务器详细教程

    这篇文章主要为大家详细介绍了windows系统搭建WEB服务器详细教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Postman支持测试Websocket接口

    Postman支持测试Websocket接口

    WebSocket允许服务端主动向客户端推送数据,在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输,在测试 WebSocket 的时候,可以使用js编写简单的页面,通过浏览器进行访问调试,也可以通过Postman进行调试
    2024-06-06
  • KB967723造成MySQL频繁无法连接

    KB967723造成MySQL频繁无法连接

    最近一个客户服务器的mysql频繁提示连接不上,修改了MYSQL的最大连接数还是这样,于是开始问万能的搜索引擎大人!终于在微软找到了解决方案!
    2009-11-11
  • 宝塔面板屏蔽禁止某个IP段访问的办法实现

    宝塔面板屏蔽禁止某个IP段访问的办法实现

    有时候我们会遇到各种不明IP的访问,比如采集蜘蛛IP,那么应该怎么解决,本文主要介绍了宝塔面板屏蔽禁止某个IP段访问的办法实现,感兴趣的可以了解一下
    2023-08-08
  • kali linux 安装 NVIDA 显卡驱动教程

    kali linux 安装 NVIDA 显卡驱动教程

    本文是作者通过实际操作后分享出来的kali linux系统上安装NVDIA显卡驱动的全过程记录,真实有效,有需要的小伙伴可以参考下。
    2018-04-04
  • rsync只同步指定目录的方法(已测)

    rsync只同步指定目录的方法(已测)

    今天在配置文件同步的时候,只需要同步指定目录,因为一些目录是不需要同步的而且数量比较大,这里简单分享下–include参数的使用
    2015-01-01
  • 超越Nginx的Web服务器caddy优雅用法

    超越Nginx的Web服务器caddy优雅用法

    这篇文章主要为大家介绍了超越Nginx的Web服务器caddy优雅用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • NAS(synology 群晖)首次使用教程

    NAS(synology 群晖)首次使用教程

    最近购买了群晖NAS企业2盘位网络存储云服务器DS716+,到手后发现教程也么有只有简单的硬盘安装方法,经过摸索终于知道大概怎么用的了,特分享一下方便需要的朋友
    2016-03-03
  • HTTP与HTTP协作的Web服务器访问流程图解

    HTTP与HTTP协作的Web服务器访问流程图解

    记得以前刚接触网站的时候,很奇怪一台服务器上可以放很多个网站,不用的域名就可以访问不同的目录,今天看起来的理所当然以前真是不可思议,今天刚好看到了这篇文章就为大家分享一下
    2018-10-10

最新评论