基于 Rust 的接口设计工具 Panda Api

MIT
Rust
跨平台
2020-02-06
arlicle

Panda api 是一款接口设计工具,它能够生成文档、提供接口模拟服务(在你没写任何代码之前)、自动测试后端接口,有效提升项目的开发效率和质量。

为什么要用Panda Api?

提升开发效率 和 开发质量:

Panda Api 能够在开发过程中隔离前后端,让前端随心所欲的掌控接口的请求和返回,而不需要后端开发人员介入。开发环境是影响研发效能最大的一个因素之一,不稳定的上游接口环境会让一个非常简单的需求轻松消耗掉数天的时间。当后端的接口还未开发完成,或者接口忽然因为后端某个开发中的功能突然不能工作时,Panda api可以快速提供接口。

Panda Api可以提供一个非常高效的前端开发环境和后端测试环境,什么是一个好的开发环境呢?

1、稳定

好的开发环境应该是稳定可用的,不应该在开发过程中受到其他开发人员影响,服务频繁挂掉或者频繁改变,前后端开发的团队成员就深有体会,两边相互影响,然后又导致相互等待,非常影响开发状态和效率。然而很多团队一直是在以这样低效的方式在推进。

2、快速验证

修改代码能够在尽可能短的时间内得到验证也是一个基本诉求,这也是为什么大部分前端构建都会关注 Hot reload 和更高级的HMR 。有些场景下一次简单前端的修改就要经过长时间等待等待后端开发完成,例如依赖上游修改接口的返回内容,需要修改后端的程序然后重新部署,需要走一遍完整的发布流程来测试某个修改调整,这种改一行等几十分钟的开发方式对效率的拖累是极其恐怖的。

3、一致性

很多项目,因为参与人员少,觉得不需要写什么文档,直接就讨论后开始开发。开发到后面就会发现,大家的共识是不一致的,进一步引发争论和项目的重新调整,如果中途换人或者半年以后再来维护这个项目,就很容易变成一个可怕的泥潭,所有人都不愿意去碰。原因就是一开始我们就没有形成文档。传统的接口文档确实很费时间,Panda api把文档即服务做好,写文档变成了一个更高效的开发方式。

开发者对于当前的需求应该是有确切认知的,而不是一直不停的怀疑自己的理解到底对不对,相关接口的字段是什么意思。

Panda Api是如何解决好这几个问题

Panda Api的三个核心服务:

  1. 提供前后端的开发的接口文档
  2. 提供前端开发的接口服务
  3. 可以进行后端接口测试

Panda Api 接口文档的工具提供以下功能:

  1. 提供一份可以前后端浏览的接口文档
  2. 使用json或json5语法来写文档,操作成本、学习成本非常低
  3. 接口文档也可以像代码一样进行版本控制,前后端都有维护的权限。Panda api依赖git等版本管理工具来做
  4. 可以在定义好文档后,立即为前端开发提供接口服务,不用等待后端开发完成。为前端支持各类请求:GET, POST, PUT, DELETE, OPTIONS
  5. 可以使用这个工具进行前端测试和后端测试
  6. 可以像Mock一样,自动生成相关测试数据

Todo 还在设计开发的功能

  1. 支持多种开发环境切换,例如开发环境、测试环境、正式环境
  2. 支持websocket方式为前端开发提供测试接口服务;支持用websocket方式作为客户端进行后端服务测试
  3. 其它等你使用后来告诉我

Panda Api 项目地址:

https://github.com/arlicle/panda-api

Panda Api 如何使用

快速简单的写好第一个接口文档 使用说明(一)
接口文档的高级配置 使用说明(二)
相关字段说明
test_data使用说明
Auth接口权限配置说明

接口文档的例子

  1. Basics
  2. Inherit from models
  3. Global field settings
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

2(4).选择排序_快排(双向循环链表)

#include<cstdio> #include<cstring> typedef struct pan { int data; struct pan *next,*prior; } Panda; void Input(Panda *head,int N) { Panda *p=head; while(N--) { Panda *pnew=new P...

2013/07/03 16:29
198
0
2(2).选择排序_冒泡(双向循环链表)

#include<cstdio> #include<cstring> typedef struct pan { int data; struct pan *next,*prior; } Panda; void Input(Panda *head,int N) { Panda *p=head; while(N--) { Panda *pnew=new P...

2013/07/03 16:24
102
0
Spark之中map与flatMap的区别

以前总是分不清楚spark中flatmap和map的区别,现在弄明白了,总结分享给大家,先看看flatmap和map的定义。 - map()是将函数用于RDD中的每个元素,将返回值构成新的RDD。 - flatmap()是将函数...

2016/06/21 14:18
115
0
树_链式

#include<cstdio> #include<cstring> #define maxn 128 typedef struct pa { char pan; struct pa *left,*right; } panda; panda *newnode() { panda *nnew=new panda; if(nnew!=NULL) nnew-...

2013/07/09 14:32
64
0
2(1).选择排序_冒泡(线性表)

#define maxn 100000 #include<cstdio> #include<cstring> typedef struct pan { int data[maxn]; } Panda; int Len=0; void Output(Panda *L); void Input(Panda *L,int N) { int fro=Len,l...

2013/07/03 16:22
88
0
2(3).选择排序_快排(线性表)

#define maxn 100000 #include<cstdio> #include<cstring> typedef struct pan { int data[maxn]; int Len; } Panda; void Input(Panda *L,int N) { int fro=L->Len,len=L->Len+N; for(int i...

2013/07/03 16:27
39
0
linux grep用法

[Linux初窥]grep -- print lines matching a pattern (将符合样式的该行列出) grep -- print lines matching a pattern (将符合样式的该行列出) ◎语法: grep [options] PATTERN [FILE...] ...

2013/09/05 10:57
190
0
设置deepin深之度的镜像源为清华大学镜像或阿里云

官方的软件源慢得跟蜗牛一样,在设置中指定镜像源又不能生效。请手工修改/etc/apt/sources.list文件。 ## Generated by deepin-installer ## 将官方源禁用 ## deb [by-hash=force] http://pa...

2019/03/16 19:31
1.3K
0
一些开源Flash视频播放器

Videobox Videobox是一个只有6k大小的脚本,用于在页面中显示视频。Videobox使用swfobject来嵌入Flash。视频可以来自Youtube、Metacafe、Google Video、iFilm和自己设置的Flash。 Videobox L...

2015/07/06 19:01
1K
0
java --常用类(String)

#1.String 字符串采用unicode编码,一个字符占两个字节。 ``` public class TestString { /** * String:它表示不可变的字符序列,底层使用char[]存放元素 * String是finall;即不可重复对一个...

2016/10/03 18:41
46
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部