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

2022-10-29 10:30:29 +08:00
 yinzhenyu

api-typing

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

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

快来这里看看吧

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/890898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX