Swagger Codegen: 自动化生成Harness的python SDK

2023-12-15 10:45:07 浏览数 (3)

一 前言

Harness 是Devops的一把利剑,用过drone,gitness都知道,Y(aml)asC/P(ipeline)asC 是其核心,其利用模块化可视化的语言将CICD更加便利更加AI的供用户使用。在从Jenkins做migration到Harness过程中,难免会涉及到数据集的转换,比如input sets,还有一些pipeline stage等的转换。但是Harness在API doc上只提供了go,python,java,curl的API:

samplessamples

所以针对一个python用户,如何快速生成python的SDK呢?办法是有的,一是直接api接口自己手动封装,但是这样比较耗时费力,另外一种办法是使用Swagger Codegen,利用Harness提供的swagger.json生成一个Python SDK。所以下面我就介绍下如何使用Swagger Codegen生成python的SDK。

二 Python SDK生成

2.1 Swagger Codegen简介

Swagger Codegen是一个能够自动化生成各种语言的 SDK,server subs,还有相关API文档的自动化工具。其利用OAS协议活swagger2.0规范,通过yml/json形式定义API内容,通过解析路由等信息生成代码和文档,方便语言间互访,消除服务间的猜忌行为。截至发稿,现在稳定的版本是3.0.51,在官方的文档中详细介绍了如何安装和使用。

2.2 环境准备

环境准备:腾讯轻量应用服务器

OS:CentOS Linux release 7.9.2009 (Core)

Java:openjdk version "11.0.21" 2023-10-17 LTS(可以使用yum安装:yum install java-11-openjdk)

安装过程:

代码语言:shell复制
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.51/swagger-codegen-cli-3.0.51.jar -O swagger-codegen-cli.jar

java -jar swagger-codegen-cli.jar --help

当出现如下结果,则证明安装没问题了:

help文档help文档

2.3 Python SDK 生成

从Harness的API官方文档页面第一页可以找到swagger.json的下载路径:Download,点击下载后并上传至服务器目录,我这里是上传在swagger-codegen-cli.jar 的同级目录:

存放目录存放目录

同时在当前目录创建一个目录作为存储生成结果的目录,我这里是tmp

使用Swagger Codegen生成指令:

代码语言:shell复制
java -jar swagger-codegen-cli.jar generate -i swagger.json -l python -o tmp

-i: 制定本地文件json路径也可以用-u制定网络文件

-l: 指定生成的语言

-o:指定生成结果存放的目录

一顿操作完成后,会在tmp里面生成一些文件和文件夹:

生成的sets生成的sets
client文件夹client文件夹

可以看到生成完毕了,client是SDK的存放的文件夹,还有READ ME docs等,可以利用git_push.sh将结果集推送至你的github仓库上。

至此python的SDK就生成了。接下来就可以验证其有效性了。我将在下篇文章进行验证。

三 总结

本文主要是介绍了Swagger Codegen的原理和使用,通过利用Harness自带的swagger.json文件自动化生成了python的SDK,方便后期二次开发和维护,提升人工效率。

0 人点赞