postman测试rest接口,postman测试api接口
最近学了RESTful接口规范,用Postman介绍了一下。在这里,我将记录RESTful接口规范:
1.什么是RESTful?
REST:是web服务的一种架构风格;使用HTTP、URI、XML、JSON、HTML等流行的标准和协议;轻量级、跨平台、跨语言的架构设计;它是一种设计风格,不是一种标准,而是一种理念。
Restful:对应的中文是RESTRestful web服务是一个常见的rest应用程序,它是一个rest风格的web服务。基于Rest的web服务是一种ROA(面向资源的架构)[推荐:web前端]
RESTful的本质是一种软件架构风格,其核心是面向资源和解决问题:
降低开发的复杂性,提高系统的可扩展性2.SOAP和REST的区别:
SOAP(简单对象访问协议):一种用于交换数据的协议规范,它是一种轻量级的、简单的和基于XML的协议。
REST(表述性状态转移):软件架构的一种风格,可以降低开发的复杂度,提高系统的可扩展性。
效率和易用性:SOAP:由于各种需求不断扩充自身协议的内容,SOAP处理的性能有所下降。同时,易用性和学习成本也提高了。RESTful:由于其面向资源的接口设计和抽象的操作,简化了开发者不好的设计,同时充分利用了Http原有的应用协议设计理念。
安全性:RESTful非常适合基于资源的服务接口,特别适合效率要求高,但安全性要求低的场景。SOAP的成熟度,可以给需要提供给多种开发语言、安全性要求高的界面设计带来便利。
总之:安全性:肥皂会比休息好;效率和易用性:休息比较好;成熟度:综合来看,肥皂在成熟度上优于REST。
3.如何设计RESTful API:资源路径:在RESTful架构中,每个URL代表一种资源,所以URL中不能有动词,只能有名词。一般来说,API中的名词应该是复数。
HTTP动词:对资源(凝乳)的操作,由HTTP动词(谓词)表示。
GET:从服务器获取资源(一个或多个项目)。POST:在服务器中创建新资源。PUT:更新服务器中的资源(客户端提供更改后的完整资源)。删除:从服务器中删除资源。以我们动物园为例(包括各种动物和员工信息):
https://api.example.com/v1/zoos//Zoo资源公司
https://api.example.com/v1/animals//Animal资源公司
https://api.example.com/v1/employees//Employee资源POST /zoos:创建新动物园GET /zoos/ID:获取指定动物园的信息PUT /zoos/ID:更新指定动物园的信息DELETE /zoos/D:删除一个动物园过滤信息:
?Limit=10:指定返回的记录数?Offset=10:指定返回记录的起始位置。Page=2per_page=100:指定哪一页,以及每页的记录数。Sortby=nameorder=asc:指定返回结果的排序依据和排序顺序。Animal_type_id=1:指定过滤标准状态码:
200 (OK)-如果现有资源已被改变201(已创建)-如果新资源已被创建202(已接受)-处理请求已被接受但尚未完成(异步处理)301(永久移动)-资源的URI已被更新303(见其他)-其他(例如, 负载均衡)400(坏请求)-指坏请求404(未找到)-资源不存在406(不可接受)-服务器不支持所需表示409(冲突)-通用冲突412(前提条件失败)-前提条件失败(如执行条件更新时的冲突)。 45(不支持的媒体类型)-不支持接收的表示500(内部服务器错误)-一般错误响应503(服务不可用)-服务目前无法处理请求错误处理:
返回的信息以error作为键名,以错误信息作为键值。
{
错误:“无效的API密钥”
}返回结果:
获取/收藏:返回资源对象的列表(数组)获取/集合/资源:返回单个资源对象发布/收集:返回新生成的资源对象放置/收集/资源:返回完整的资源对象补丁/集合/资源:返回完整的资源对象删除/集合/资源:返回一个空文档4.REST风格的接口测试流程:
我们直接用一张图来介绍吧5.代码编写和Postman测试:
工具:idea,mysql数据库,邮递员
数据库表数据:
实体类:
@数据
@ApiModel(用户实体类)
公共类用户扩展模型用户实现可序列化{
@ApiModelProperty(用户id’)
@NotNull(message=用户编号不能为空)
私有整数id;
@NotBlank(message=用户名不能为空)
@ApiModelProperty(用户名)
私有字符串名称;
@Min(1)
@最大值(100)
@ApiModelProperty(用户年龄)
私有整数年龄;
@NotEmpty(message=邮箱不能为空)
@ApiModelProperty(用户邮箱)
@电子邮件
私人字符串电子邮件;
@ApiModelProperty(0:未删除1:已删除)
@TableLogic
私有整数已删除;
@NotBlank(message=密码不能为空)
@ApiModelProperty(用户密码)
私有字符串密码;
}控制器层的代码(服务层省略):
@Api(tags=用户管理)
@RestController
@请求映射(/我的网站/用户)
公共类用户控制器{
@自动连线
private UserServiceImpl UserServiceImpl;
@ApiOperation(value=新增用户)
@PostMapping
public int insertUser(User user) {
System.out.println(新增成功);
返回userServiceimpl.insertUser(用户);
}
@ApiOperation(value=修改用户信息)
@PutMapping
公共void更新用户(@请求正文@有效用户用户){
userServiceimpl.updateUser(用户);
System.out.println(修改成功);
}
@ApiOperation(value=删除用户,注释=根据编号删除用户)
@DeleteMapping(/{id} )
public int deleteUser(@ApiParam(用户id )@路径变量@有效整数id) {
System.out.println(删除成功);
返回userserviceimpl。删除用户(id);
}
@ApiOperation(value=查询所有用户)
@GetMapping
公共列表用户allUser() {
System.out.println(查询成功);
返回userserviceimpl。all user();
}
@ApiOperation(value=id查询用户)
@GetMapping(/{id} )
公共用户selectById(@PathVariable(id )字符串id) {
返回userserviceimpl。选择byid(id);
}
}利用邮递员测试(网址路径要对应上):查询所有用户:http://localhost:8081/我的网站/用户
头:内容类型=应用程序/json
正文:空
查询成功!根据id查询:
查询成功!新增用户:
查看数据库新增成功!修改用户信息(修改编号为七的姓名和年龄):
查看数据库修改成功!根据id删除用户:
查看数据库删除成功!(已删除=1)
可能你的是直接删除了整一条数据
当查询或更新或删除不存在的数据时(或者数据不合法),都是执行失败的
还有其他接口,例如删除所有等接口,这里不一一测试了
若有不正确的地方,欢迎指出。以上就是安静的接口规范与邮递员调试工具介绍的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。