Restful

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"}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容