V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yinzhenyu
V2EX  ›  分享创造

亲爱的前端朋友们,是时候让接口对接更轻松一点了,来看看这个

  •  
  •   yinzhenyu · 2022-10-29 10:30:29 +08:00 · 3914 次点击
    这是一个创建于 790 天前的主题,其中的信息可能已经有所发展或是发生改变。

    api-typing

    一个强类型提示的 http 客户端框架(基于 axios )

    亲爱的前端同事们,你是否受够了和后端每天不断地对接口,调整接口路径和传参格式?是否疲于查看后端的回参文档?是否疲于人肉查看同步每次更新后的接口字段变更?是时候让这些工作更加简单轻松一点了。

    快来这里看看吧

    18 条回复    2022-11-03 12:50:10 +08:00
    TabGre
        1
    TabGre  
       2022-10-29 10:43:16 +08:00 via iPhone
    没有文档的吗? 如果连这个都没有,啥工具也没有用
    yinzhenyu
        2
    yinzhenyu  
    OP
       2022-10-29 11:20:42 +08:00
    @TabGre 文档正在写了,马上就会同步
    8bryo4p5qn758Dmv
        3
    8bryo4p5qn758Dmv  
       2022-10-29 11:26:12 +08:00
    为什么不用 OpenAPI?
    yinzhenyu
        4
    yinzhenyu  
    OP
       2022-10-29 11:40:31 +08:00
    @whitecosm0s 这个就是基于 openapi 协议的
    yinzhenyu
        5
    yinzhenyu  
    OP
       2022-10-29 11:43:35 +08:00
    @whitecosm0s 可以根据你项目的 openapi 文档生成 ts 类型,自动提示接口的传参和回参
    golangLover
        6
    golangLover  
       2022-10-29 12:26:04 +08:00
    先等文档吧。暂时没有文档的话可能就个人 project 敢用。
    TS 好评
    estk
        7
    estk  
       2022-10-29 16:36:12 +08:00 via Android
    我觉得后端提供 swagger 是对前端最大的尊重
    TabGre
        8
    TabGre  
       2022-10-29 22:10:29 +08:00 via iPhone
    @yinzhenyu 我的意思时两端对接时连基本约定的定义都不肯做,拿什么工具也约束不了
    lisongeee
        9
    lisongeee  
       2022-10-30 00:28:24 +08:00
    小建议,应该使用 `import type` 而不是 `import`
    fay94
        10
    fay94  
       2022-10-30 00:50:23 +08:00
    nswag ?
    yinzhenyu
        11
    yinzhenyu  
    OP
       2022-10-30 23:39:11 +08:00 via Android
    @TabGre 是的,这个是在 swagger 的基础生成的 TS 类型,好处是缺少什么字段或者类型不对,前端可以清楚的知道,不用肉眼核对字段信息了
    corianderHunter
        12
    corianderHunter  
       2022-10-31 16:41:11 +08:00
    我也写过一个,支持 openapi2 、openapi3 ,而且支持根据 tags 来指定代码集合。https://www.npmjs.com/package/openapi-parser-shark 。代码比较粗糙,而且感觉几乎不能有效考虑到所有的测试场景。最关键的是,使用这种类型工具,对后端接口文档的质量要求很高。我觉得如果不能对 openapi 文档做版本管理,约束 schema 变更,以后的代码迭代,可能维护上会出大问题。
    yinzhenyu
        13
    yinzhenyu  
    OP
       2022-11-01 10:58:35 +08:00
    @corianderHunter 嗯,我也想过自动生成代码,但觉得还是太重了。这个项目的目的就是只做类型提示,不会限制接口的业务代码编写,在不能提示的时候提供降级的解决方案,尽量让接口参数和文档保持一致。至于后端文档不完善也是个问题但这是后端的问题,前端要做的就是踢他们的屁股。
    yinzhenyu
        14
    yinzhenyu  
    OP
       2022-11-01 10:59:31 +08:00
    @lisongeee 已改
    manasheep
        15
    manasheep  
       2022-11-03 10:41:35 +08:00
    这是不是已经被 Apifox 实现了?:

    根据接口 /模型定义,自动生成各种语言 /框架的业务代码和 API 请求代码。
    支持 TypeScript 、Java 、Go 、Swift 、ObjectiveC 、Kotlin 、Dart 、C++、C#、Rust 等 130 种语言及框架。
    支持自定义代码模板,自动生成符合自己团队的架构规范的代码,满足各种个性化的需求。

    https://www.apifox.cn/
    GreatAuk
        16
    GreatAuk  
       2022-11-03 11:40:04 +08:00   ❤️ 1
    https://github.com/chenshuai2144/openapi2typescript#readme 推荐个工具,代码和类型都根据 openapi 生成
    yinzhenyu
        17
    yinzhenyu  
    OP
       2022-11-03 12:39:08 +08:00 via Android
    这个项目的目的并不是为了生成接口代码,而是仅做接口参数的类型提示和校验,因为每个人封装接口的方式都是不一样的,如果直接生成接口代码会缺少一定的灵活性
    yinzhenyu
        18
    yinzhenyu  
    OP
       2022-11-03 12:50:10 +08:00 via Android
    @manasheep apifox 我也在用,但是我一直觉得直接生成接口代码的方式太重了,所以选择不生成接口代码,只做类型限制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2739 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:06 · PVG 10:06 · LAX 18:06 · JFK 21:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.