如何理解rest和restful,什么是restfulAPI?
发布网友
发布时间:2022-04-21 19:55
我来回答
共1个回答
热心网友
时间:2022-06-18 21:58
简单理解一
就是用URL定位资源,用HTTP描述操作。
简单理解二
URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
官方定义
一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
以web开发举例
在设计web接口的时候,REST主要是用于定义接口名,接口名一般是用名次写,不用动词,那怎么表达“获取”或者“删除”或者“更新”这样的操作呢——用请求类型来区分。
比如,我们有一个students接口,对于“学生”我们有增删改查四种操作,怎么定义REST接口?
增加一个学生,uri: http://testcode.com/school/students 接口类型:POST
删除一个朋友,uri: http://testcode.com/school/students 接口类型:DELETE
修改一个朋友,uri: http://testcode.com/school/students 接口类型:PUT
查找朋友,uri: http://testcode.com/school/students 接口类型:GET
上面我们定义的四个接口就是符合REST协议的,请注意,这几个接口都没有动词,只有名词students,都是通过Http请求的接口类型来判断是什么业务操作。
举个反例
uri: http://testcode.com/school/addStudents 该接口用来表示增加学生,这就是不符合REST协议的接口。
建议
用HTTP Status Code传递Server的状态信息。比如最常用的 200 表示成功,500 表示Server内部错误,403表示Bad Request等。(反例:传统web开发返回的状态码一律都是200,其实不可取。)
REST风格接口意义
前后端分离。前端拿到数据只负责展示和渲染,不对数据做任何处理。后端处理数据并以JSON格式传输出去,定义这样一套统一的接口,在web,ios,android三端都可以用相同的接口,节约开发成本以及便于同一调试。