Restful

RESTful

单元测试和黑盒测试

https://blog.csdn.net/fengbingchun/article/details/40457431

RESTful是接口编写的规范

1.URI - 规范

2.用法

3.错误处理

REST(Representation State Transfer)

1.什么是表现层(前端,后端将实体(资源)的数据传送到前端,前端规则展示出来(状态))

2.State(数据,具体实体(资源))

3.Transfer(状态变化)

资源:就是后端具体实体(文本,字符串,表,库,文件)

尽量一个接口对应一个实体

RESTful架构

1.每一个URI代表一个资源(实体)

2.表现层对客户端和服务端之传递资源进行展示

3.客户端通过HTTP动词(方法),对服务器的资源进行操作,实现“表现层的资源的状态转化”

规范的URL写法

1.协议

2.地址 - 域名

3.端口

4.URI

http://api.example.com/v2( v2 - 表示版本(version))

http://api.example.com/v2/user - post -

例子:

GET /zoos 列出所有动物园

POST /zoos 新增一个动物园

GET /zoos/ID :获取某个指定的动物的ID信息

PUT /zoos/ID: 更新某个指定的动物园的信息(全部更新)

PATCH /zoos/ID: 更新某个指定的动物园的信息(部分更新)

DELETE /zoos/ID:删除指定的动物园

GET /zoos/ID/animals:列出动物园中的所有动物

DELETE /zoos/ID/animals/ID:删除一个动物

过滤信息

?limite=10:指定返回的记录数量

?page=2&per_page=100:指定第几页,以及每页记录的数量

?sortby=name&order=asc:指定返回的记录按照什么排序,以及按照升序(降序)的顺序排序

URL设计

动词+宾语(动词是HTTP方法,宾语是实体,必须是名词)

动词的覆盖

POST模拟其他方法(put,patch,delete)

POST /api/Person/4 HTTP/1.1

X -HTTP - Method -Override:PUT (动词覆盖)

复数URL - 集合

避免多级URL

GET /authors/12/categories/2 - 不允许

GET /authors/12?categories=2 - 多级URL写法

错误处理:以字典形式返回

状态码:

1xx:相关信息

2xx:操作成功

3xx:重定向

4xx:客户端错误

5xx:服务器错误

postman(接口测试工具)

学习工具

1.fiddler - 抓包 接口之间的调用(接口数据,如何断言)

2.postman - 接口测试工具( 1.怎么设置接口测试方法 2.怎么设置URI/URL 3.自定义Header 4.请求参数 5.怎么做断言 6.参数化)

接口关联:

通过一个接口执行完毕后,将需要的值写入变量或者全局变量,以便于后续的接口作为参数使用

引入文件里的内容,实现参数化的时候注意用的关键词是data,后面跟文件中的变量名称

var expected_result = data.expected (预期结果)

接口和安全(SSL)

https://blog.csdn.net/liuchunming033/article/details/48470575

专业名词

认证,授权,凭证,SSL,https 完成SSL生成和配置

SSL证书

OAuth

生成证书 - 个人,SSL机构购买

x509证书一般会用到三种文件key,csr,crt

Key是私用密钥,openssl格式,通常是rsa算法。

csr是证书请求文件,用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请,还可以设定一个密钥。

crt是CA认证后的证书文件(windows下面的csr,其实是crt),签署人用自己的key给你签署的凭证。

CA根证书的生成步骤

生成CA私钥(.key)–>生成CA证书请求(.csr)–>自签名得到根证书(.crt)(CA给自已颁发的证书)。

# Generate CA private key 
openssl genrsa -out ca.key 2048 
# Generate CSR 
openssl req -new -key ca.key -out ca.csr
# Generate Self Signed certificate(CA 根证书)
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

用户证书的生成步骤

生成私钥(.key)–>生成证书请求(.csr)–>用CA根证书签名得到证书(.crt)

服务器端用户证书:

    # private key
    $openssl genrsa -des3 -out server.key 1024 
    # generate csr
    $openssl req -new -key server.key -out server.csr
    # generate certificate
    $openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key 

客户端用户证书:

$openssl genrsa -des3 -out client.key 1024 
$openssl req -new -key client.key -out client.csr
$openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

API安全机制

https://juejin.im/post/6844903833831915527

https://www.jianshu.com/p/c6518a8f4040

接口安全机制

1.token机制- - 时间短,是客户端访问服务器的凭证

2.时间戳超时机制 - -用每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后跟当前时间进行比对,如果时间差大于—定时间(比如5分钟),则认为该请求失效。时间戳超时机制是防御DOS攻击的有效手段。

3.签名机制 – 签名机制-将Token和时间戳加上其他请求参数再用MD5或SHA-1算法(可根据情况加点盐)加密,加密后的数据就是本次请求的签名sign,服务端按收到请求后以同样的算法得到签名,并跟当前的签名进行比对,如果不一样,说明参数被更改过,直接返回错误标识。签名机制保证了数据不会被篡改。

接口安全实现流程

1、客户端通过用户名密码登录服务器并获取Token

2、客户端生成时间翟timestamp,并将timestamp作为其中一个参数

3、客户端将所有的参数,包括Token和timestamp按照自己的算法进行排序加密得到签名sign

4、将token、timestamp和sign作为请求时必须携带的参数加在每个请求的URL后边(http//url/requestctoken=1238timestamp=123&sign=123123123)

5、服务端写一个过滤器对oken,timestamp和sign进行验证,只有在token有效、timestamp未超时、缓存服务器中不存在sign三种情况同时满足,本次请求才有效

OAuth - 保证外网接口的安全性

https://blog.csdn.net/zhou920786312/article/details/95536556

清楚第三方提供的API接口规范

1.在第三方中心,申请自己的appid/clientid/secret,设置回调URL

2.打开自己app的系统,使用第三方账号登录

3.授权- 授权自己的app可以访问你的账号的相关信息(user信息,性别,图像,昵称等等)

4.这个过程用的认证授权机制就是OAuth

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值