- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
也是有一段时间没更文了,最近忙于跟生活对线。
今天给大家带来的是一个宝贝, Apipost。
这东西做啥用?这东西做啥用?这东西做啥用?这东西做啥用?
在了解这个apipost的作用之前,先听我说,谢谢你因为有你,温暖了四季。
身为后端研发的我们, 是不是有以下这些感受?
①写完接口,得自测,写测试用例测完,跟前端联调,跑测试用例每次得重启代码一轮 ,麻烦。
②写完接口,得编写接口文档,纠结怎么去排版弄格式,麻烦。
③写完接口,写完文档,跟前端调试,跟测试对峙,出来混要讲证据,每次都是把接口调用没问题的截图发过去,麻烦。
④写完接口, 写完文档,其他人如果也参与了,还得发文档过去给他们,一起改来改去,麻烦。
都是因为写接口,所以解决方案就是 : 不写接口 ,就可以。
ps:说到接口自测, 忍不住吐槽,接口基本带token或者一些固定请求头,请求参数。烦! 每次调试接口,都得整一遍这些玩意,也是麻烦。
还有那个websocket的自测,简直了,得自己单独写个测试页面或者去找专门的测试网站…
那么,今天带来的Apipost,上边提到的麻烦点,它都能帮我们解决。
开始玩一玩这个Apipost。
① 模拟HTTP请求(其实也就是接口调试)
② 接口公共参数、环境全局参数的使用
③ 一键快速生成文档 (白嫖文档)
④ 团队协作,多人在线一块玩
⑤接口的性能测试
⑥接口调用代码生成 (白嫖代码)
最好大家跟着我使用客户端一块操作一下,动手,动手,动手!!
客户端下载地址(本篇文章用的客户端):
https://www.apipost.cn/download.html?token=4d1f96403929460350281516e7637ee9
apipost 官网**:**
https://www.apipost.cn?token=4d1f96403929460350281516e7637ee9
Web版链接(不用下载):
https://console.apipost.cn/register?token=4d1f96403929460350281516e7637ee9
先贴一下日常工作的时候,我使用apipost的场景图:
今天的砖依然烫手,忙活了一上午的陈师傅,复制粘贴出来了一个查询接口:
/**
* @Author: JCccc
* @Date: 2022-4-18 11:52
* @Description:
*/
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/list")
public Result<List<User>> list(UserQueryVO userQueryVO) {
List<User> list = userService.list(userQueryVO);
return new Result<>(200, "success", list);
}
}
写完接口,打开apipost自测模拟一下接口调用:
ps:
提前预告,看到下面图的左边绿色(又绿了今天,加仓吗)框框里的目录没,录起来可以直接生成接口文档!后面会讲到,如果你急了,直接看后面第三点③.
可以看到,接口http请求模拟成功 (这返回数据界面清晰明了,还是因为我代码写得好啊):
当然,还可以模拟post、get、delete,还有patch、options、propfind、purge 请求等等,它会的太多了。
特意点一下post请求 ,咱们平时用的也是很多 :
上面接口http请求模拟,其实很多很多软件都能实现。
但是,我们平时系统的接口经常都是涉及到token校验的,还有一些公共的必传参数,例如当前语言环境标识这种。
一次又一次地去给每个接口的 Header ,加上 token 这个key 吗?
一次又一次地给每个接口带上公共参数 语言环境标识 lang 这个key 吗 ?
我现在需要调试 100个接口 ,我要加100次吗? 人生有多少个100次?
Apipost****来了! 它带着 公共参数库 来了!
直接选中 我们Apipost的 左边 api目录,你想在什么层级目录下的接口享受到这个公共参数,那就选择哪一个目录 :
然后就是 可以去设置 公共的请求头参数 ,公共的Query参数,公共的Body参数 :
立刻实践验证一下(知识点,@RequestHeader 可以直接拿请求头参数):
@GetMapping("/list")
public Result<List<User>> list(@RequestHeader("token")String token, UserQueryVO userQueryVO){
System.out.println("token:"+token);
List<User> list = userService.list(userQueryVO);
return new Result<>(200,"success",list);
}
可以看到,请求头里面的token ,香:
这是我最喜欢的一个功能点了。
想分享哪个目录下的接口,就点哪个,当然咱们也可以直接点击最外面的目录,也就是会生成整个项目的接口文档了;那又当然,我们如果想单独分享某个接口,也可以只点击某个接口做分享。
图示:
其实还有自由气息更高的,自定义分享:
自己看着想分享那些就勾选需要的目录就行,当然我们如果写的接口提前超过排期时间点了,那自然是需要适度分享的... 感觉我在教坏大家,这个自定义分享很贴心啊(嘿嘿)
分享的文章可以设置查看权限,支持 开放权限设置:
也支持密码权限设置:
分享出来的外网地址,直接访问,就可以看到在线文档:
每个目录的公共参数,一目了然:
生成的api接口排版简洁明了:
然后是细节了,平时我们找文档里面的接口,也是麻烦得很(Apipost的设计者显然也是开发仔,量身定做了搜索功能):
导出文档(支持各种格式,HTML、Word、MarkDown):
咱就是说,一键生成导出接口文档,然后任务排期是半天不过分吧,用好了软件,时间不就省下来了吗。
也就是说我们这个是可以实时邀请其他人一块来玩的,也就是我一边调试,其他人也能一块一边调试。
ps:我们的Apipost是不需要登录也能使用的,但是如果需要协同工作,那自然就是需要登录了,因为有账号体系,可以方便追溯,方便管理。
界面右上角,点击邀请协作(想起之前用postman啊啊啊,都是导出,然后发给其他同事,他们自己导入再用。然后,我这边改了,又得导出,他们再导入。):
可以看到分了读写权限的概念,也就是说,这个很细节,假如你现在就是项目经理 (看客们,祝贺自己吧,看文章学着学着职级也升到经理了),哪些人可以看,哪些人能看能写,这个权限你可以把控。
这个功能点也非常好,就是我们可以玩一些简单的性能压测,直接看实例:
我们反手录入一个接口:
然后对这个接口展开调用压测,看看稳不稳定:
当然还可以配合接口的mock一块用(这Apipost果真是为了协助考虑的,不仅仅对我们开发仔有考虑,还对我们的测试人员也是很贴心):
这个功能我个人强推!
生成代码:
cURL方式的:
(意味着什么,那些本地有时候调试完,服务器上是不开放对外访问的,那么直接生成代码粘贴到服务器,一样可以调试...)
再看下我们选择java(java天下第一,不服评论区见) :
这个代码意味着什么?
如果说是我们调试第三方接口的时候,只要调通了,直接一键生成,然后复制粘贴到我们的项目里面(当作单测直接改都不用改),当作正式代码使用就稍微优化一下,这可是可视化编程啊啊啊啊!!!!
其他语言生成代码,不看! java就是世界上最好的语言。
ps :
补充一个纯吐槽的点
我是真的真的真的忍了postman一个点很久了,不知道大家有没有遇到过这个问题。
就是用postman,用着用着,某一天打开直接白屏了。 然后需要重新下载…
就光是这一点,如果你也被坑过,请你在评论区 立刻 !马上!跟我产生一波共鸣!
最后,其实...官网里面的使用教程也很细,而且还有视频教程,非常暖心。
虽然我的教程是最好的教程。(不过还有蛮多很好玩的东西我没一一介绍,所以大家还是可以去官网看看的)。
Apipost官网里面不仅有教程,也有相关的问答社区、博客社区,也算是一个比较好的摸鱼区学习地方。
apipost 官网 :
https://www.apipost.cn?token=4d1f96403929460350281516e7637ee9
客户端下载地址 :
https://www.apipost.cn/download.html?token=4d1f96403929460350281516e7637ee9
Web版在线使用地址(不用下载):
https://console.apipost.cn/register?token=4d1f96403929460350281516e7637ee9
OK,该篇就到这里吧。
如果看官们有什么东西也想分享的,欢迎评论留言讨论 ,也可以直接联系我。
注意:列转行的方法可能是我独创的了,呵呵,因为在网上找不到哦,全部是我自己写的,用到了系统的SysColumns (一)行转列的方法 先说说行转列的方法,这个就比较好想了,利用拼sql和case
您好,我是编码新手,正在尝试找出此 getopt 不起作用的原因。我的编译器提示“i:o:” 错误 C2664“int getopt(int,char **,char *)”:无法将参数 3 从“co
mockjs作用就是,生成随机模拟数据,拦截 ajax 请求,可以对数据进行增删改查。在生成数据时,我们就需要能够熟练使用 mock.js 的语法。 Mockjs 的语法规范包括两部分:数据模
我用 Java 开发了一个 SDK,我也有一个运行时。我想限制使用运行时 jar 的开发。我的 SDK 是节点锁定的,但我不想保持运行时节点锁定,以便我的客户可以自由地使用我的 SDK 开发应用程序,
这是玩 Rust 的链接: http://rustbyexample.com/match/guard.html 我发现 Rust 在我对无符号变量取反时显示警告,因此执行下面的代码以 结尾 warni
我正在尝试使用简单的 创建一个按钮栏并将其不透明度更改为 50% 并提供背景 但是进入这个分区的元素表现出与父级相同的透明度 .我希望它们保持 100% 的不透明度。 (这是不可能的)。如何使这成
谁能想出一种方法来使用 ol/li 列表中的数字来标记图像? 应用一些 CSS 后应该输出以下内容: ------ ------ ------ | | | | |
我有一个我认为微不足道的问题。我必须处理德语字母表中的元音变音 (äöü)。在Unicode中,似乎有几种显示它们的方法,其中之一就是组合字符。我需要规范化这些不同的方式,将它们全部替换为单字符代码。
来源:blog.csdn.net/weixin_44730681/article/details/107944048 1 基本概念 2 添加依赖 3 配置相关属性 4 sql监控 5 慢sql记录 6
我想对我的数据库进行两次调用,这将需要一段时间才能返回结果,而且我不想阻塞当前线程。我使用 Akka Futures 来包装数据库调用。 我不想等待(阻塞)两个调用返回,而是指定要调用的回调函数,然后
细心的人都会发现github个人主页有一个记录每天贡献次数的面板,我暂且称之为贡献面板。就像下图那个样子。只要当天在github有提交记录,对应的小格子就会变成绿色,当天提交次数越多,颜色也会越深。
今天第一次看 Bazel。 关于构建 cpp tutorial ,我可以看到它如何构建简单的可执行文件和存档库,但它看起来不像示例创建或使用共享库。 有谁知道用于演示此过程的简单示例 BUILD 文件
我正在尝试让 Play 2.2 在 IntelliJ IDEA 中运行,但遇到了一些问题。 Play 2 Framework 插件似乎不适用于 Play 2.2。 使用 play 控制台设置项目并使用
我正在使用类似单选按钮的 div,有一个问题。 我这样声明一个函数和变量 我设置了两种样式,一个 .buttonUp 和 .buttonDown 应用于 div 的 onclick 事件。 var
我是一名优秀的程序员,十分优秀!