1.什么是RESTful?
RESTful本质是一种软件架构风格
核心是面向资源
所谓”资源” ,就是网络上的一个实体,或者说是网络上的一个具体信息。(图片,文本,音乐等)
2.RESTful优点
解决的问题
1) 降低开发的复杂性
2) 提高系统的可伸缩性(无论是app,响应式的都用一套)
3.设计概念和准则
1) 网络上的所有事物都可以被抽象为资源
2) 每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识。
3) 所有的操作都是无状态的
4.RESTful中的http协议
http是一个属于应用层的协议,特点是简洁,快速。
Schema://host[:port]/path[?query-string][#anthor]
常用状态码
200 客户端请求成功
201 CRETAE 新建或修改数据成功
204 NO CONTENT 删除数据成功
400 客户端请求有语法错误,不能被服务器所理解
401 服务器收到请求,但是请求的资源需要授权访问而客户端并没有授权,被服务器拒绝提供服务。
403 表示用户访问时被禁止的。(表示提供了授权信息,但是参数错误)
404 请求的资源部存在。
422 当创建一个对象时,发生一个验证错误,如需要填账号和密码,但是只填了账号。
500 服务器发生不可预期的错误
503 服务器当前不能处理客户端的请求(服务器达到性能)
RESTful架构与其他架构的区别
SOAP WebService
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
WebService通过HTTP协议发送请求和接收结果时,采用XML格式封装,并增加了一些特定的HTTP消息头,这些特定的HTTP消息头和XML内容格式就是SOAP协议。
1.效率和易用性。
SOAP由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降。
同时在易用性方面以及学习成本上也有所增加。
Eg:使用soap时,由于增加了特定的HTTP消息头,如果业务提供方没有提供API,没有人会使用。
RESTful 由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时最大限度的利用了http最初的应用协议理念。
2.安全性
RESTful 对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。
如何设计RESTful API
1) 资源路径 网址中不能有动词,只能有名词。一般名词用复数。
2) [HTTP动词(GET,POST)对资源的操作(CURD),由HTTP动词表示
POST /zoos :新建一个动物园
GET /zoos/ID:获取某个指定动物园的信息
PUT /zoos/ID: 更新某个指定动物园的信息
DELETE /zoos/ID: 删除某个指定动物园的信息
3) 过滤信息(分页,查询)
4) 状态码
5) 错误处理 {“error”:”参数错误”}
6) 返回结果
http://localhost/test/api/restful/users用户登录
{"username":"admin1234","password":"123"}
创建文章
http://localhost/test/api/restful/articles
{"title":"restful","content":"restful"}