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

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

  •  
  •   calmzhu · 2020-10-03 00:12:18 +08:00 · 2240 次点击
    这是一个创建于 1303 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 定义好 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 翻译成中文, 没匹配到自动开启百度翻译 哈哈哈现在想起还觉得挺有意思的
    fy
        6
    fy  
       2020-10-03 16:22:31 +08:00
    生成 curd 啊,我搞过:
    https://github.com/fy0/slim

    就是文档写的不好,实践了两三年了,有些 API 的设计存在问题,最近正在重构。
    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   ·   我们的愿景   ·   实用小工具   ·   5455 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 07:49 · PVG 15:49 · LAX 00:49 · JFK 03:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.