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的联合方式会不会是功能过度时代的对应方式还需进一步调查。
总结
以上就是这篇文章的全部内容了,但愿本文的内容对大家的学习或者工作拥有一定的参考学习价值,感谢大家对脚本之家的支撑。要是你想理解更多相干内容请查看下面相干链接