RESTful是什么?

RESTful只是一种架构方式的约束,给出一种约定的标准,完全严格遵守RESTful标准并不是很多,也没有必要。

一、来源

REST:Representational State Transfer(表象层状态转变),这三个单词到底意味着:

  1. 每一个URI代表一种资源;
  2. 客户端和服务器之间,传递这种资源的某种表现层;
  3. 客户端通过四个HTTP动词(get、post、put、delete),对服务器端资源进行操作,实现”表现层状态转化”。

二、6大原则

1、C-S架构

2、无状态

3、统一的接口

这个才是REST架构的核心,统一的接口对于RESTful服务非常重要。客户端只需要关注实现接口就可以,接口的可读性加强,使用人员方便调用。

4、一致的数据格式

服务端返回的数据格式要么是XML,要么是Json(获取数据),或者直接返回状态码

5、系统分层

客户端通常无法表明自己是直接还是间接与端服务器进行连接,分层时同样要考虑安全策略。

6、可缓存

7、按需编码、可定制代码(可选)

三、7个最佳实践

1、版本

如github开放平台 https://developer.github.com/v3/
就是将版本放在url,简洁明了

2、参数命名规则

推荐采用下划线命名的方式

3、url命名规范

每个url代表一种资源所以url中不能有动词,只能有名词,并且名词中也应该使用复数。实现者应使用相应的Http动词GET、POST、PUT、PATCH、DELETE、HEAD来操作这些资源即可

4、统一返回数据格式

对于合法的请求应该统一返回数据格式,这里演示的是json

  • code——包含一个整数类型的HTTP响应状态码。
  • status——包含文本:”success”,”fail”或”error”。HTTP状态响应码在500-599之间为”fail”,在400-499之间为”error”,其它均为”success”(例如:响应状态码为1XX、2XX和3XX)。这个根据实际情况其实是可要可不要的。
  • message——当状态值为”fail”和”error”时有效,用于显示错误信息。参照国际化(il8n)标准,它可以包含信息号或者编码,可以只包含其中一个,或者同时包含并用分隔符隔开。
  • data——包含响应的body。当状态值为”fail”或”error”时,data仅包含错误原因或异常名称、或者null也是可以的

5、http状态码

1:请求未成功
2:请求成功、表示成功处理了请求的状态代码。
3:请求被重定向、表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向。
4: 请求错误这些状态代码表示请求可能出错,妨碍了服务器的处理。
5:(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

6、合理使用query parameter

7、多表、多参数连接查询如何设计url


RPC和RESTful区别

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

推荐阅读更多精彩内容

  • 大家好,我是IT修真院深圳分院java第4期学员,一枚正直善良的java程序员。今天给大家分享一下,修真院官网ja...
    肥胖症患者阅读 3,064评论 0 0
  • 大家好,我是IT修真院深圳分院第5期学员,一枚正直善良的JAVA程序员。 今天给大家分享一下,修真院官网JAVA任...
    素履之往_3e36阅读 3,570评论 0 0
  • 本质:一种软件架构风格核心:面向资源解决的问题:降低开发的复杂性、提高系统的可伸缩性设计概念和准则:网络上的所有事...
    大乔是个美少女阅读 2,540评论 0 0
  • 在程序猿DD Spring Boot基础教程的开山篇《基础项目构建,引入Web模块,完成一个简单的RESTful ...
    蹙眉大傻阅读 3,240评论 0 0
  • error code(错误代码)=0是操作成功完成。error code(错误代码)=1是功能错误。error c...
    Heikki_阅读 8,714评论 1 9