Restful

Restful

简介:

本质:是一种软件架构风格

核心:面向资源

解决的问题:降低开发的复杂性,提高系统的可伸缩性

设计概念和准则:

  • 网络上的所有事物都可以被抽象为资源
  • 每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识
  • 所有的操作都是无状态的 无状态表示的是:每一次操作的都是独立的,没有任何关系

Restful中HTTP协议介绍

  • HTTP协议—URL

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

​ schema://host[:port]/path?query-string

​ schema是协议,包括http,https,ftp

​ anchor是锚,指资源某一个章节或某一个函数的标识

  • HTTP协议—请求

​ 组成格式:请求行、消息报头、请求正文

​ 请求行:Method Request-URL HTTP-Version CRLF

例如:GET/HTTP/1.1CRLF

  • 请求方法:GET/POST/HEAD/PUT/DELETE/OPTIONS

  • 状态码

    每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功

    1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。

    2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了

    3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面

    4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果

SOAP 与 RESTFUL 的区别

  • WebService :

    ​ webservice 是一种跨变成语言和跨才操作平台的远程调用技术。

  • SOAP协议的定义:

    ​ webservice通过http协议发送请求和接受结果时采用xml格式封装,并增加了一些特定的http消息头,这些特定的http消息头和xml内容格式就是soap协议。

  • RESTFUL :

    ​ 核心思想是资源

    ​ 面向资源的接口设计

    ​ 抽象操作为基础的crud

    http 是应用协议并非传输协议

  • 安全性区别:

    ​ restful 安全验证不足

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

  • 效率和易用性区别

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

    ​ Soap内部由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降

  • 适用环境:

    ​ RESTful适合资源型服务接口,高效率,安全性要求不高的场景。

    ​ Soap适合安全性强的场景

  • 补充区别:

    SOAP-Simple Object Access Protocol 简单对象访问协议,交换数据的一种协议规范,轻量的、简单的、基于XML的协议。

    REST-Representational State Transfer 表述性状态转移,一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性。

如何设计Restful Api

资源路径

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

版本信息加入到url中 v1 或者加入到请求头

HTTP动词 : 对 资源的CRUD操作 有HTTP动词(谓词)表示

  • get 获取资源
  • post 新增一个资源
  • put 更新一个资源(更新后返回该资源的属性)
  • patch 在服务器更新资源(更新后只返回更新的属性)
  • delete 删除一个资源

举例:

​ https://api.example.com/v1/zoos //动物园的资源,在动物园前加个版本号可以规范确定

​ https://api.example.com/v1/animals //动物的资源

​ https://api.example.com/v1/employees //雇员的资源

设计动物园资源的Api:

  • GET /zoos:列出所有动物园
  • POST /zoos:新建一个动物园
  • GET /zoos/ID:获取某个指定动物园的信息
  • PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
  • DELETE /zoos/ID:删除某个动物园
  • GET /zoos/ID/animals:列出某个指定动物园的所有动物
  • DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

接口测试

什么是接口测试?

1、接口测试又称为API测试 Application Programming Interface

2、接口测试是测试系统组件间接口的一种测试。重点关注数据传递。

3、接口测试一般会用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。

REST风格的接口测试流程

在这里插入图片描述

功能测试-测试覆盖:

  • 业务流程
  • 边界值,特殊字符
  • 参数类型,必选项,可选项

功能测试-性能测试:

  • 并发数(同一时间发送的用户的数量);
  • 吞吐量,tps;
  • 出错率

测试计划

GET:

​ 正向用例: 返回所有对象和返回某一个对象
​ 负向用例: 一个不存在的id
​ URL输入不正确

POST:

​ 正向用例:输入正确参数新加一个对象(特殊字符,中文等)
​ 负向用例:参数name为空/重复
​ 参数age为0/-1/100/101/字符串/null/空
​ 参数 salary,为整数/带小数/负数/null/空

PUT:

​ 正向用例:输入正确参数修改一个对象(特殊字符,中文等)
​ 负向用例:参数id为空/无效值
​ 参数name为空/重复
​ 参数age为0/-1/100/101/字符串/null/空
​ 参数 salary:为整数/带小数/负数/null/空

DELETE:

​ 正向用例:删除所有对象和删除某一个对象
​ 负向用例:一个不存在的id
​ URL输入不正确

使用postman验证测试用例

POST:

在这里插入图片描述

GET:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值