有人用过 Swagger CodeGen 之类的工具么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
calmzhu
V2EX    程序员

有人用过 Swagger CodeGen 之类的工具么

  •  
  •   calmzhu 2020-10-03 00:12:18 +08:00 2684 次点击
    这是一个创建于 1848 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 定义好 OpenAPI schema 。即可自动生成 REST API 的工具。
    • 单独 model 的 CRUD 就行,不需要数据库的关系。
    • 求祖师爷们砸饭碗

    顺便, 人工智能自动写代码上天这么久了。咋样了。

    第 1 条附言    2020-10-03 22:29:04 +08:00

    解释一下需求:

    类似对数据库表暴漏为REST API ,不用考虑表间的外建或者关联表, 交互逻辑会在其他层做。

    现在写一个的话略繁琐。比如加一个接口

    • 类似MVC的文件结构,要改的地方不少
    • 测试用例,不同输入数据类型,
    • 加接口文档

    细节性的要求就是。 比如OpenAPI定义某个字段为10~20长度的字符串。

    • 希望接口文档里面有体现
    • 测试用例里面有不同输入范围覆盖
    • 存储过程有长度校验

    自己模糊的感觉就是。存储过程,测试用例,接口文档中关于这个字段长度的信息有冗余。

    现在是这种简单接口特别多。。

    9 条回复    2020-10-03 22:40:15 +08:00
    passerbytiny
        1
    passerbytiny  
       2020-10-03 07:24:09 +08:00 via Android
    schema 转代码的方法签名部分还能找找,要连方法体甚至 CURD 都自动生成的话,建议辞掉程序员换成廉价外包。
    crclz
        2
    crclz  
       2020-10-03 10:22:21 +08:00
    1. 业务代码其实是对现实世界业务规则的描述,这种描述是需要人类大脑来转换到代码。业务代码和单纯的 CRUD 有很大区别。

    2. 你的这个帖子我看不太懂
    calmzhu
        3
    calmzhu  
    OP
       2020-10-03 10:47:52 +08:00
    @passerbytiny

    懒惰是第一生产力,偷懒都不会的话,建议去搬砖。
    calmzhu
        4
    calmzhu  
    OP
       2020-10-03 10:53:51 +08:00
    @passerbytiny

    只要业务代码对单个实体的的 CRUD 部分
    可以理解为通过 RESTAPI 对数据库里面的单张表进行操作。并且所有数据库表之间无任何联系。 交互逻辑会在其他层做。
    现在写一个的话略繁琐。比如加一个表

    要定义 MODEL /Validation/View/Contriller

    最主要是接口文档跟测试用例对输入数据的校验太繁琐了。
    mtmax
        5
    mtmax  
       2020-10-03 14:38:16 +08:00
    哈哈 我刚入行时写过 不过是通过 service 和 model 代码自动生成 swagger 注解 就是那一堆 @ApiOperation @ApiModel

    原因是同事写代码都不写 swagger 然后 leader 要我去补 swagger 文档 那么多接口 我就写了个工具类去自动生成

    主要原理就是解析字符串, 然后匹配特点的 kv 翻译成中文, 没匹配到自动开启百度翻译 哈哈哈现在想起还觉得挺有意思的
    td width="auto" valign="top" align="left">
        6
    fy  
       2020-10-03 16:22:31 +08:00
    生成 curd 啊,我搞过:
    https://github.com/fy0/slim

    就是文档写的不好,实践了两三年了,有些 API 的设计存在问题,最近正在重构。
    fy
    clf
        7
    clf  
       2020-10-03 21:14:18 +08:00
    这看上去是……低代码开发工具?能被生成的代码业务逻辑肯定不复杂,而有复杂业务逻辑的接口也没法生成或者说生成的成本不会降低。

    其实编程语言就可以理解为描述你接口行为的一种语言,只不过这种语言不止为 API 接口的构建服务。

    你可以设计一种灵活的配置式的代码生成工具,但接口的实现需求越灵活,配置的过程也越复杂,学习成本也越大。或者就是遵循一个 All in one 的接口,比如 Odata,服务端配置完后,剩下的基本就是前端的事情了。
    calmzhu
        8
    calmzhu  
    OP
       2020-10-03 22:34:46 +08:00
    @lychs1998
    是的。就是低代码甚至无代码开发工具。

    现在的框架功能不仅仅是 API 构建。只是需要 API 构建的部分。 帖子加了个 append 部分解释。
    calmzhu
        9
    calmzhu  
    OP
       2020-10-03 22:40:15 +08:00
    @calmzhu
    不算开发工具吧。并不是给专职程序员的。而是需要用到代码的其他学科人员。
    比如有的流程自动化部分,只是需要通过 coding 把实际对象做个展现映射。存粹的 CRUD 就够了(甚至只要 UD 都不怎么用)。关注点并不在 coding 部分,
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2739 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 02:34 PVG 10:34 LAX 19:34 JFK 22:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86