【Go】Swagger v2 转 OpenApi v3 CLI - swag2op

写这个工具的原因,也是受万俊峰老师的启发,他把工作中重复的事情,整合到一个工具,然后开源,这件事很赞。

swag2op

【Go】Go Swagger 生成和转 openapi 3.0.3 这篇文档,主要是对 swagger 如何生成,以及如何用代码把生成的 swagger.json 转为 OpenApi 的 spec。总觉着这样很不直觉,而且都得再指定,再去转,有些麻烦。原本 swagger2openapi3 的 roadmap 也就是要写一个 cli,那刚好这篇就说明一下这个 cli 的用法。

swagger2openapi3 下的 cmd/swag2op 就是通过指令直接生成 OpenApi v3.0.3 的 cli。

swag2op 完全继承 swag 的用法,设计的时候就是想不要改变原本生成 swag 的方法,可以使用原来的,也可以在此基础上能够生成 OpenApi v3 的 spec。

安装方式也很简单:

go install github.com/zxmfke/swagger2openapi3/cmd/swag2op@latest

使用方式遵循 swag 的用法:

swag2op init
新增 flag

swag2op 提供了三个额外的 flag,以提供更多的灵活性:

  1. disableConvertOpenApiV3Flag

    这个标志决定是否将生成的 swagger.json 转换为 OpenAPI v3 格式。默认情况下是启用的。设计的时候也在想,有些人可能就是有时候要 OpenApi v3,有时候又不需要,所以提供这个 flag 可以更灵活。

  2. disableOverwriteSwaggerV2Flag

    这个标志决定是否在生成 OpenAPI v3.0 json 时不覆盖原始的 swagger.json。默认情况下是禁用的。swag2op 设计的时候就是直接生成 OpenApi 的 spec,又要保持原来在 docs 的目录下面,所以就得去覆盖原来的 docs 下的 swagger.json 和 swagger.yaml。不过有些人可能考虑我既要保留原本的,也要生成 OpenApi 的,所以就提供这个 flag。

  3. openapiOutputDirFlag

    这个标志指定生成的OpenAPI v3规范的输出目录。默认值是./openapi。

测试

在仓库下面有一个 example 文件夹,里面是一个简易的 gin 的 web server,可以安装后用这个 example 先测试下。

Roadmap

现在代码只能处理单个 project 下面的 swag,但是如果我是微服务的那种,但是我又要导入到某个一平台当做插件(要把接口都和到一个 spect 里面)。这个时候就无法满足这种场景,一个个手动贴也很烦,所以下一步就是可以生成某个微服务项目下的 OpenApi v3 spec,所有的接口都在一份 spec 里面。当然,如果除了这个方法之外还有更好的方法,欢迎分享。

====================当前版本信息==================== 当前版本:V1.0.1 发布日期:2012-08-02 文件大小:839K (压缩后2.90MB) 本程序参考了PHP_SDK_V3.0.2包的设计,包含实现了此包中所有功能。 1、为了照顾到低版本用户使用了.Net 2.0开发,所以没能使用.Net高版本提供的json序列化功能,所以使用了Newtonsoft.Json控件,非常感谢此控件作者,控件相关信息请搜索。 2、SocketObj.cs、Sort.cs两个类以及UrlEncode(.Net自带的方法有大小写问题)来自网络,感谢原作者。 3、hmac-sha1的加密也翻阅了好到网络资料,感谢那些分享经验的大师们。 4、TestOpenAPI项目中Web.config文件设置appid、appkey就可以调试了。 5、在实例文件中有支付相关的实例方法,由于我的应用没能够申请此功能,所以没有经过测试,大家用的时候遇到问题随时沟通。 另外,附调试方式: 1.应用管理 - 编辑应用 - 平台信息 - (左侧的)QQ空间平台信息 2.填写“应用开发地址”这个貌似不支持端口好,所以需要把TestOpenAPI项目配置成本地虚拟目录,总之能使用80端口访问项目即可。 3.填写“高度”我写了600,平台地址不用填(调试阶段)。 4.保存。 5.保存成功后点击左侧的调试按钮就进入QQ空间应用页面。我调试的时候不是直接进入应用,而是往下拉会看见应用信息,点击应用的标题就进入应用了。 开发过程中遇到的问题以及处理办法: 1.签名总是不对,最后发现是appkey配置错了,竟然复制了另外一个应用的,郁闷啊,这个错误聪明的你们是不会犯的啦 2.“1002,no login”错误,当时我是把OpenID和openkey写死了调试的,所以是openkey过期了。官方文档说没开通相应平台也报这个错误。 3.没遇到其他问题,祝你们也要这么顺利哦 ====================文件结构信息==================== TencentOpenAPI项目: SnsNetwork.cs:发送HTTP网络请求类 SnsSigCheck.cs:请求参数签名生成类 SnsStat.cs: 统计上报类 OpenApiV3.cs:OpenAPI访问类 TestOpenAPI项目: Test_OpenApiV3.aspx: 示例代码 sha1.aspx : 脚本实现hmac-sha1加密,用于判断C#程序生成的签名是否正确 本SDk示例代码中并没有列出所有的OpenAPI,腾讯开放平台V3OpenAPI正在不断增加中,详见API列表: http://wiki.open.qq.com/wiki/API3.0文档 http://wiki.open.qq.com/wiki/API文档 ====================联系我们==================== 腾讯开放平台官网:http://open.qq.com/ 您可以访问我们的资料库获得详尽的技术文档:http://wiki.open.qq.com/wiki/首页 官方论坛下载地址:http://bbs.open.qq.com/forum.php?mod=viewthread&tid=76444&extra=page=1 相比1.0.0的版本《基于QQ OpenAPI V3的.Net SDK(原创)》(http://download.youkuaiyun.com/detail/xiyangyu/4470767)新增了支付相关的方法和实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值