前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swagger Codegen: 自动化生成Harness的python SDK

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

原创
作者头像
金鹏
修改2023-12-15 10:45:07
2300
修改2023-12-15 10:45:07
举报
文章被收录于专栏:SDLC技术探究SDLC技术探究

一 前言

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:

samples
samples

所以针对一个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,方便后期二次开发和维护,提升人工效率。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 前言
  • 二 Python SDK生成
    • 2.1 Swagger Codegen简介
      • 2.2 环境准备
        • 2.3 Python SDK 生成
        • 三 总结
        相关产品与服务
        CODING DevOps
        CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档