这次春节在家时间比较长,就有时间做了自己想做的东西,欢迎大家体验提意见:)
Panda api 是一款接口设计工具,它能够生成文档、提供接口模拟服务(在你没写任何代码之前)、自动测试后端接口,有效提升项目的开发效率和质量。
Panda Api 的说明视频 https://www.bilibili.com/video/av88926940?p=1
Panda Api 的快速简易视频教程 https://www.bilibili.com/video/av88926940?p=2
提升开发效率 和 开发质量:
Panda Api 能够在开发过程中隔离前后端,让前端随心所欲的掌控接口的请求和返回,而不需要后端开发人员介入。开发环境是影响研发效能最大的一个因素之一,不稳定的上游接口环境会让一个非常简单的需求轻松消耗掉数天的时间。当后端的接口还未开发完成,或者接口忽然因为后端某个开发中的功能突然不能工作时,Panda api 可以快速提供接口。
Panda Api 可以提供一个非常高效的前端开发环境和后端测试环境,什么是一个好的开发环境
呢?
1、稳定
好的开发环境应该是稳定可用的,不应该在开发过程中受到其他开发人员影响,服务频繁挂掉或者频繁改变,前后端开发的团队成员就深有体会,两边相互影响,然后又导致相互等待,非常影响开发状态和效率。然而很多团队一直是在以这样低效的方式在推进。
2、快速验证
修改代码能够在尽可能短的时间内得到验证也是一个基本诉求,这也是为什么大部分前端构建都会关注 Hot reload 和更高级的 HMR 。有些场景下一次简单前端的修改就要经过长时间等待等待后端开发完成,例如依赖上游修改接口的返回内容,需要修改后端的程序然后重新部署,需要走一遍完整的发布流程来测试某个修改调整,这种改一行等几十分钟的开发方式对效率的拖累是极其恐怖的。
3、一致性
很多项目,因为参与人员少,觉得不需要写什么文档,直接就讨论后开始开发。开发到后面就会发现,大家的共识是不一致的,进一步引发争论和项目的重新调整,如果中途换人或者半年以后再来维护这个项目,就很容易变成一个可怕的泥潭,所有人都不愿意去碰。原因就是一开始我们就没有形成文档。传统的接口文档确实很费时间,Panda api 把文档即服务做好,写文档变成了一个更高效的开发方式。
开发者对于当前的需求应该是有确切认知的,而不是一直不停的怀疑自己的理解到底对不对,相关接口的字段是什么意思。
Panda Api 的三个核心服务:
Panda Api 接口文档的工具提供以下功能:
1
Varobjs 2020-02-14 20:55:25 +08:00 via Android
关注下
|
2
LevineChen 2020-02-14 21:08:48 +08:00 via iPhone
挺棒的
|
3
ivyliner 2020-02-14 21:34:10 +08:00 via Android
挺好的,可以借鉴 yapi
|
5
arlicle OP @Varobjs @LevineChen 谢谢,欢迎用一用,提提意见
|
6
zhuzhibin 2020-02-14 22:39:28 +08:00
老哥我不会 rust 咋办
|
7
huyujievip 2020-02-15 01:36:21 +08:00 via Android
有意思的东西
|
8
wjidea 2020-02-15 02:01:27 +08:00
有意思,不错可以看看。
|
9
mwylaoma 2020-02-15 08:51:04 +08:00
Star 一下
|
11
oneisall8955 2020-02-15 10:50:13 +08:00 via Android
看着不错,想问下路径参数,body 是多层 object 有解析嘛
|
12
arlicle OP @oneisall8955 有的, 文字的简易教程里面有写,你可以看看:)
https://www.debugmyself.com/p/2020/1/15/Panda-api%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/ ```.language-json5 { name:"文章列表", method:"GET", url:"/post/star/list/", query:{ page:{name:"分页", type:"number"} }, response:{ total_page: {name:"总页数", type:"number"}, total_count: {name:"总记录数", type:"number"}, current_page: {name:"当前页码", type:"number"}, result: [{ $name:"文章列表", $desc:"只包含用户点赞过的文章列表", id: {name:"用户 id", type:"number"}, title: {name:"文章标题"}, category: { $name:"文章所属分类", $desc:"这里为了体现对象,所以就特意把文章分类用一个对象来表示", id:{name:"分类 id", type:"number"}, name:{name:"分类名称", type:"string"} }, content: {name:"文章内容"}, created: {name:"文章创建时间", type:"number"} }] } } ``` |
13
rookiebulls 2020-02-15 11:18:30 +08:00 via iPhone
关注一波
|
14
ZiLong 2020-02-15 12:59:39 +08:00
上次 rust 中文社区的日报推过,赞,持续关注
|
15
clf 2020-02-15 16:13:16 +08:00
关于 mock 这块地方,有一些问题。现在返回结果有这么一个需求:
{ "name":"常见的姓名", "identity_number":"标准身份证号", "city":"随机中国城市名", "constellation":"十二星座", "zodiac":"生肖" } 是否能生成这样的数据?而不单单是根据类型生成数据。而且因为你写 mock 模块的时候不可能把生成这些数据的函数或者类型全部内置到我想要的你都有,所以还需要能随时拓展。 另外,现在接口设计与 mock 服务这一块是 mock.js 的天下,就像上面说的 yapi,也是前端使用 mock.js 生成 mock 服务器。 我个人建议是直接基于 mock.js 的语法来实现一个 rust 版的后端 mock 工具,这样能复用接口设计时产生的项目资产。当然,也可以自己设计一套,但这样的话,一些后端语言是 rust,已经使用了其它平台做接口设计的项目,想要迁移到你的平台阻力会很大。 我之前也用 Java 去写过 mock 工具,以上是开发下来最后总结的经验。加油! |
16
arlicle OP @lychs1998 你好,谢谢你的建议, 目前已支持常见中英文姓名, panda api 有 enum 枚举类型, 星座和生肖可以用 enum 枚举来实现, 也支持正则表达式, 身份证号这些可以通过 正则实现:)
相关字段在这里, 后续会逐步增加更多字段,非常谢谢你的建议,我想一下怎么方便用户自己拓展类型 https://www.debugmyself.com/p/2020/1/29/Panda-api%E5%AD%97%E6%AE%B5%E8%AF%B4%E6%98%8E/ |
17
wm5d8b 2020-02-16 12:34:13 +08:00
我发现,大家说的 API 管理工具,只管理 HTTP JSON。如果是 XML 格式的,或者通讯协议为 gRPC 或其他私有协议的,就没有工具了。
|