SpringBoot2.x系列教程(九)基于Postman的RESTful接口调用
使用Spring Boot开发Web项目一般有两种类型,一种是传统的前后端在同一个项目(jsp、freemarker等),一种是前后端分离的项目(API形式,包括APP)。本篇文章基于API形式的接口调用来介绍Postman这款工具的使用。
Postman除了提供模拟Http请求之外,还提供了很多高级功能,比如:自动化测试、auth认证、js脚本及生成各类语言代码等。这里我们仅以基础功能来进行讲解,关于高级特性,如有需要可自行研究学习。
Postman是一款功能强大的网页调试与发送网页HTTP请求的工具,能够发送任何类型的HTTP请求(GET,HEAD, POST,PUT等),附带任何数量的参数和HTTP headers。
支持不同的认证机制(basic, digest,OAuth),接收到的响应语法高亮(HTML,JSON或XML)。Postman既可以以Chrome浏览器插件的形式存在,也可以是独立的应用程序存在。
Postman下载安装
Postman支持两种形式,一种是浏览器插件,一种是本地安装。本文以本地安装为例来进行讲解。
官方下载地址:https://www.getpostman.com/downloads/
根据自己的情况下,下载安装对应环境的版本即可。当前最新版本为:7.14.0。注册账户登录之后,首页内容如下图。

具体功能讲解
首先创建一个Web项目,提供了一个登录的api请求。这里简单模拟,请求参数只有用户名和密码,后台直接返回结果的json字符串。
@RestController public class PostmanController { @PostMapping("login") public Result login(String username, String password){ Result result = new Result(); result.setCode(0); result.setDesc("success"); return result; } }

在postman中下图三个位置均可创建一个模拟请求。
创模拟请求之后便可以填写请求相关信息和进行请求测试了。

在上图指定的位置填写请求链接、请求参数,然后点击“Send”即可发送模拟请求。
由于上面的实例需要采用post请求,因此在请求链接前面选择post,当然postman还支持更多类型的请求。

当每次请求完成之后,在左边的History中便会记录之前请求的历史记录。
如果请求比较多,则可通过左边的Collection进行分类,在不同的类别中创建具体的请求。
关于返回结果,直接以Json高亮形式展示。同时,也展示了Http请求常见的Cookies、Headers等信息。如果返回的结果不是Json,而是Xml、HTML、Text等,postman也会自动解析出来。
postman还支持通过占位符和环境设置来进行不同环境的统一快速切换。首先看下图的请求与之前的请求有什么不同?


在请求的url中使用了{{url}}来进行占位处理。而关于url变量的定义则在postman右上角的“齿轮”按钮中进行不同环境的变量定义。下图添加了dev环境中在url值。
在上面的请求中,虽然我们选择了post方式提交,但是我们配置参数是通过Param里面进行配置的,此时参数依旧会被拼接到url上。如果我们的请求需要通过Header、Body传输参数,postman同样支持,具体功能就位于Param选择的后面。下面以真正Post方式传递参数。

上面我们也提到过,还可以进行鉴权参数的传递,可以设置如OAuth、OAuth2等协议,我们就不再做具体演示了。
最后,如果某些请求不适合在postman中进行请求,也可以通过postman生成相应的请求代码,在不同的环境下进行执行。

点击请求参数一行最后的“code”,即可获得不同语言不同类型的请求代码。
小结
上述所描述的功能,基本上满足了日常所需的大多数情况。关于其他功能就不再一一赘述,大家可以自行进行探索。工欲善其事必先利其器,在合适的场景下使用合适的工具能够更快的达到目的。
Spring技术视频
CSDN学院:《Spring Boot 视频教程全家桶》
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:http://folen.top/2019/12/30/springboot2-x-postman-restful/