V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rookie2luochao
V2EX  ›  程序员

也给解析 swagger/openapi3/apifox 的工具加上了命令行方式,原来只支持 nodejs,欢迎体验

  •  
  •   rookie2luochao ·
    rookie-luochao · 124 天前 · 1471 次点击
    这是一个创建于 124 天前的主题,其中的信息可能已经有所发展或是发生改变。

    命令行用法

    # npm
    npx --package=openapi-ts-request -- openapi -i ./openapi.json -o ./apis
    
    # pnpm
    pnpm --package=openapi-ts-request@latest dlx openapi -i ./openapi.json -o ./apis
    

    对于我这种天天只希望早点下班的搬砖🐶,准时下班才是我最大的快乐,关键是我们还要写私活,必须节省时间,从不在公司搞无意义的卷

    所以搞了这个 nodejs 工具来辅助开发,只为提前下班,欢迎 pr, issuse, feature 建议, star

    其他用法,详见地址: https://github.com/openapi-ui/openapi-ts-request

    工具目前支持:

    • 解析 Swagger2.0/OpenAPI 3.0,3.1 规范定义
    • 生成 TypeScript 类型
    • 生成各种客户端请求函数,包括:axios, fetch, uniapp.request ,node-fetch 等等
    • 生成枚举,枚举翻译
    • 生成 mock 请求服务
    • 生成类型字段对应的翻译
    • 生成 JSON Schemas
    • 支持通过 tags 来筛许需要生成的内容
    18 条回复    2024-07-17 22:29:49 +08:00
    snowlee
        1
    snowlee  
       123 天前
    一直在用这个包 https://github.com/openapi-ts/openapi-typescript ,跟你这个挺像的
    rookie2luochao
        2
    rookie2luochao  
    OP
       123 天前
    @snowlee 对的,它是后来才做的,不知道它这个有现在我增强的这个功能多不,我这个是基于以前的一个 antd 的核心开发写的老旧包升级的
    rookie2luochao
        3
    rookie2luochao  
    OP
       123 天前
    @snowlee fuck, 打扰了,原来你发的这个包 2020 年就写了,那它们两创建的时候差不多,我以前用的都是我现在搞的这个,后面没人维护我就自己花时间开发了
    rookie2luochao
        4
    rookie2luochao  
    OP
       123 天前
    @snowlee 我这个要生成 ts, mock , axios 等等客户端,枚举,英译汉,json-schemas 等等,我看它介绍好像只生成 ts 吗?
    Hanser002
        5
    Hanser002  
       123 天前
    rookie2luochao
        6
    rookie2luochao  
    OP
       123 天前
    @Hanser002 我靠,这么个小玩意,这么卷吗?都艾特我几个同类型的了,不过那些都是国外开发的,它不能让我愉快,我要愉快的暴力生成,越多越好😭
    rookie2luochao
        7
    rookie2luochao  
    OP
       123 天前
    @Hanser002 不过以我的使用经验来看,真没必要把 swr, react-query ,axios 这些客户端封装进来,那样得追着 n 个客户端库跑,我们是直接接受你自己封装任何的客户端 request 函数,这样你自己随意封装,然后往 hook 里面套
    rookie2luochao
        8
    rookie2luochao  
    OP
       123 天前
    但是不得不说它这么个小工具,竟然参照 vite 设计的 api ,NB
    Hanser002
        9
    Hanser002  
       123 天前
    @rookie2luochao #7 你说的这些库都是插件的形式可配置的 我看了你写的 参数蛮多的 如果能做成类似 kubb 的配置化或者插件化就更好了 👍
    rookie2luochao
        10
    rookie2luochao  
    OP
       123 天前
    @Hanser002 首先它的 api 设计确实很好,我就是看了它的配置,竟然参照的 vite 的 api 设计成了 defineConfig 和插件的形式,主要是这个工具主体以前也不是我写的,我用了几年,觉得还行,但是少了很多功能,也不怎么维护了,所以我就接手过来重构一下代码接着添加诸多功能
    rookie2luochao
        11
    rookie2luochao  
    OP
       123 天前
    @Hanser002 如果有人用,我倒是愿意往插件上面转,主要是认知里面觉得没必要把 client 搞成各种插件,直接接受 request 注入就好了
    julyclyde
        12
    julyclyde  
       122 天前
    求扫盲:
    你标题上提到的要解析的三个东西,前俩我知道,第三个 apifox 不是个软件吗?怎么去解析这个软件呢?
    还说这个软件有自己单独的格式?
    rookie2luochao
        13
    rookie2luochao  
    OP
       122 天前
    @julyclyde apifox 配置一下就可以同步输出接口文档对应的 openapi.json 配置
    remember5
        14
    remember5  
       122 天前
    谢谢 OP ,建议 github 加一个 sponsor
    julyclyde
        15
    julyclyde  
       122 天前
    @rookie2luochao 那其实不提 apifox 也行吧……不就还是 openapi 么
    rookie2luochao
        16
    rookie2luochao  
    OP
       122 天前
    @julyclyde 大部分人其实都不知道 apifox 可以同步 openapi.json, 提一下显得醒目?
    rookie2luochao
        17
    rookie2luochao  
    OP
       122 天前
    @julyclyde 现在博客平台文章全是 炸眼球的标题,这不是很正常?
    rookie2luochao
        18
    rookie2luochao  
    OP
       122 天前
    @remember5 非常感谢同学,如果想给我 sponsor ,可以加我 vx: old_city4698782 ,buy me a coffee ,😁😁😁
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2546 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:34 · PVG 10:34 · LAX 18:34 · JFK 21:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.