Restful api架构的主要设计要素

1、Restful是什么?

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

核心:面向资源设置api

2、为什么要使用Restful?

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

3、Restful与其他架构有什么区别?

soap webserver 是一种跨编程语言,跨操作平台远程调用技术。通过http协议发送请求和接收结果时采用xml格式封装,并增加了一些特定的http消息头,这些特定的http消息头和xml内容格式就是soap协议

这俩个架构的区别在:1、效率2、易用性3、安全性

效率和易用性:

soap案例:由于soap添加的是特定的http消息头,如果业务提供方(微信)不提供文档...没有人会使用它的api

安全性:

Restful适用于效率要求很高,但安全性要求不高的场景

soap的成熟性对于安全性要求较高的接口设计带来便利

4、如何实现符合Restful架构的API?

遵守6大主要设计要素

5、Restful和http的区别?

Restful是一种软件架构风格

http是一种实现方法

6、Restful 的设计6要素

Restful api架构的主要设计要素

Restful api架构的主要设计要素

1、资源路径:每个网址代表一种资源,不能有动词只能有名词,名词应该使用复数(用users而不是用user)

2、http动(谓)词:指的是请求方式

3、过滤信息:获取资源列表时分页或查询

4、状态码:

5、错误处理:客户端传的参数不对返回什么状态码

6、返回结果:post返回资源实例,get返回数组



设计概念和准则:

1、网络上的所有事物都可以被抽象为资源

2、每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识

案例:删除资源后,资源的标识依然有效,只不过资源标识所代表的资源不存在


Restful中的http协议:

Restful api架构的主要设计要素

http的端口是80;https的端口是443

path(路径):标识资源

[?quert-string](参数):筛选资源

[#anchor](錨):錨链接,用于快速定位。可以理解问word文档的几级标题

请求方法:Request-uri是请求资源路径的意思

post【增】:在Request-uri所标识的资源后面附加新的数据

delete【删】:请求服务器删除Request-uri所标识的资源

put【改】:请求服务器存储一个资源,并用Request-uri作为其标识

get【查】:请求获取Request-uri所标识的资源

head:请求获取由Request-uri所标识的资源的响应消息报头

options:请求查询服务器的性能,或者查询与资源相关的选项和需求(获取服务器允许我对资源进行哪些操作,还涉及到访问频率限制的参数)

常用响应状态码:

200、404、500就不写了,干过的都知道傻意思

400 Bad Request: 客户端请求有语法错误,不能被服务器所理解

401 Unauthorized:服务器收到请求,但是拒绝提供服务(资源需要授权访问,而客户端没有授权)

503 Server Unavaiable:服务器当前不能处理客户端的请求(一般是服务器性能达到瓶颈了)


Restful api的设计要素

1、资源路径:每个网址代表一种资源,不能有动词只能有名词,名词应该使用复数(用users而不是用user)

Restful api架构的主要设计要素

2、http动(谓)词:指的是请求方式

Restful api架构的主要设计要素

Restful api架构的主要设计要素

Restful api架构的主要设计要素

注意:Put更新返回,全部字段。Paech返回一个字段

3、过滤信息:获取资源列表时分页或查询

Restful api架构的主要设计要素

4、状态码:

Restful api架构的主要设计要素

Restful api架构的主要设计要素

Restful api架构的主要设计要素

5、错误处理:客户端传的参数不对返回什么状态码

Restful api架构的主要设计要素

6、返回结果:post返回资源实例,get返回数组

Restful api架构的主要设计要素

Restful api架构的主要设计要素

注意事项:

1、做登录接口的时候 //只返回用户,unset()将密码删除