简介
通过 yapi 定义出接口其实是一件很 challenge 和重复的事情。
一般的我们的基于“资源”概念的 restful 接口会对某个数据模型(model)实现 CRUD 接口 (增删改查)。
假设我们一个基本的管理用户的需求。
- 获取用户列表 GET /api/v1/users?_num=10&_page=1
- 获取某个用户 GET /api/v1/users/:id
- 新增一个用户 POST /api/v1/users
- 删除某个用户 DELETE /api/v1/users/:id
- 更新某个用户 PUT /api/v1/users/:id
对于 yapi,意味着我们需要至少定义 5个接口,这些接口的 request 和 response 存在很大需要复用数据模型的需求。
最近找到一个工具,可以结合起来定义相关模型。
定义和使用
- 定义数据模型。这里有个好处就是,我们输入一个我们接口的示例 json,就能生成模型
- 选择生成 Rest Resource
- 所有的 CRUD 接口全部生成好了
- 然后我们使用导出 swagger 功能,导出 openid spec。然后再导入到 yapi。则 yapi 的 api 全部定义好了
- 另外,我们还能利用 yapi swagger 订阅功能实现一定的自动更新(前提是要将这个 swagger 写入到一个可通过 http 获取的地方)
后续
感觉有时间可以写个插件内置到 yapi 这部分功能。(咕咕咕)
4条答案
按热度按时间rlcwz9us1#
我一直有个疑问,都用yapi了,为什么还是很多人继续使用swagger?
或者说swagger的优势在哪里?哪些特点是yapi无法满足的?
oxosxuxt2#
简单来说:因为 swagger 更加强大。
@tangcent
k7fdbhmy3#
@ghostbody ghostbody 插件写好了吗,期待
lyr7nygr4#
唉,搞起来极其麻烦。
为什么 yapi 不用开源的 OAS 建模,而要自己设计一套描述接口的数据结构,导致很多东西很难做,而且和开源生态脱离。目前只能数据导入、导出方式实现,非常麻烦。