Restful API实战以及接口测试

Restful是什么

本质

一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制

核心

面向资源而设计API

用途

用于客户端和服务器交互类的软件

解决的问题

  1. 降低开发复杂性
  2. 提高系统可伸缩性

设计概念与准则

  1. 所有的操作都是无状态的
  2. 网络上所有的事物都可以被抽象成资源
  3. 每个资源都有唯一的资源标识,对资源的操作不会改变资源的资源标识符(例子:资源删除,资源在被删除后,资源标识符依旧存在,只不过它所代表的资源不存在而已)

课外小知识

  • 资源是什么

所谓资源就是网络上的一个实体,或者是一段具体的信息。如:图片、文本、歌曲、视频

Restful中的HTTP协议

HTTP协议是一个属于应用层的协议,特点是简捷、快速

HTTP协议–URL

组成形式:协议头+主机名+请求路径(方框内为可选参数)
URLschema://host[:port]/path [?query-string][#anchor]

  • scheme:指定底层使用的协议(如:http、https、ftp)
  • host:服务器的IP地址或者域名
  • port:服务器端口,默认为80(https默认为443)
  • path:访问资源的路径
  • query-string:发送给http服务器的数据
  • anchor:锚,指资源某一个章节或某一个函数的标识

HTTP协议–请求

组成形式:请求行+消息报头+请求正文
请求行Method(请求方法) Request-URI(请求地址) HTTP-Version(http版本号:1.0或1.1) CRLF
例子:GET/HTTP/1.1 CRLF

请求方法

  • GET:请求获取Request-URL所标识的资源
  • POST:在Request-URL所标识的资源后附加新的数据
  • HEAD:请求获取由Request-URL所标识的资源的响应消息报头
  • PUT:请求服务器存储一个资源,并用Request-URL作为其标识
  • DELETE:请求服务器删除Request-URL所标识的资源
  • OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求

HTTP协议–响应

组成形式:状态行+消息报头+响应正文
状态行HTTP-Version(http版本号:1.0或1.1) Status-Code(响应状态码) Reason-Phrase(字面的响应内容) CRLF
例子:HTTP/1.1 200 OK

响应状态码

  • 200 OK:客户端请求成功
  • 400 BadRequest:客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized:服务器收到请求,但是没有授权拒绝提供服务
  • 404 Not Found:请求资源不存在
  • 500 Internal Server Error:服务器内部发生不可预期的错误
  • 503 Server Unavailable:服务器当前不能处理客户端请求(当服务器性能达到瓶颈后就会拒绝以后的服务)

架构区别

SOAP WebService定义

是一种跨变成语言和跨才操作平台的远程调用技术。通过HTTP协议发送请求和接受结果时采用XML格式封装,并增加了一些特定的HTTP消息头,这些特定的HTTP消息头和XML内容格式就是SOAP协议

  • 效率和易用性

SOAP由于各种需求不断扩充其本身协议的内容,导致其处理方面的性能有所下降。同时在易用性方面以及学习成本上也有所增加

RESTful由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了HTTP最初的应用协议设计理念

  • 安全性

RESTful对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但对于安全要求不高的场景

SOAP的成熟性可以提供多开发语言的,对安全性要求高的接口设计带来便利

如何设计RESTful API

资源路径

在RESTful架构中,每个网址代表一种资源,所以网址中不能有动词,只能有名词。一般来说API中的名词应该使用复数

在这里插入图片描述
HTTP动词

对于资源的操作(CURD),有HTTP动词(谓词)表示

  • GET:从服务器去除资源(一项或多项)
  • POST:在服务器新建一个资源
  • PUT:在服务器更新资源(客户端提供改变后的完整资源)
  • DELETE:从服务器删除资源
  • PATCH:在服务器更新资源(客户端提供改变后的部分属性)

在这里插入图片描述
过滤信息

如果记录数量很多,服务器不可能将它们都返回给用户。API应该提供参数,过滤返回结果

在这里插入图片描述
状态码

服务器向用户返回的状态码和提示信息,使用标准HTTP状态码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
错误处理

如果状态码是4XX或者5XX,就应该向用户返回出错信息。一般来说,返回的信息中将error作为键名,出错信息作为键值即可,防止服务端内部的敏感信息泄露给客户端,这对于服务端有一定的危险性

返回结果

针对不同操作,服务器向用户返回的结果也不尽相同,如下图

在这里插入图片描述
在这里插入图片描述

REST风格的接口测试流程

了解接口格式-->编写测试用例-->测试用例评审-->开始测试-->完成测试报告-->结束

编写功能测试计划

需求描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试计划
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用Postman验证测试用例

正向用例:输入正确的值,输出正确的结果
负向用例:输入不合理的值,输出期望的结果
GET业务
在这里插入图片描述
POST业务
在这里插入图片描述
PUT业务
在这里插入图片描述
DELETE业务
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值