此文只在通俗的层面讲一下我对RESTful的理解。
在“古代”,有个王老板办了一家企业,其业务量起初并不多,而且大部分都是王老板手下的业务员“跑”出来的业务,经过了几年的打拼,由于王老板经营有方,企业业务量出现了喜人的变化,这时候王老板联系了一家软件公司为自己公司做一个网站,以期达到宣传公司产品和服务的目的,并且王老板把自己计算机专业毕业的儿子小明拉到公司里来负责和这个软件公司对接,在对接过程中,小明告诉他爹王老板可以在这个网站上增加一些功能,以方便客户在这个网站上反馈问题、申请售后、订购产品等,王老板爽快答应。这个软件公司为小明选择的系统开发技术是JSP\Struts。系统交付后,企业发展更好了,这套系统也为公司做出了很多贡献。但过了几年,企业信息化的风气渐起,且市场竞争越来越激烈,企业人员也越来越多,企业规模已经很大,这套系统已经不足以支撑企业的业务需求,而且企业还需要OA系统、财务系统、库管系统、销售管理系统、企业资产信息管理系统等等,而且从企业的发展速度上看,企业也逐渐的需要各式各样的系统。这时候已经成为副总的小明联系到软件公司,询问如何升级系统以期达到满足企业发展需要的水平。软件公司为小明介绍了RESTful的软件系统架构风格。即当前小明的企业系统需要面向未来不断发展的需要,有可能会出现各种各样的终端设备请求/调用企业系统的服务,而不只是一个PC端的浏览器中的JSP页面去与服务端通信。
JSP页面与服务端交互方式中包含JSP特有的通信方式,这种交互方式是在HTTP基础之上附带了JSP与struts之间特有的通信包,而且JSP在其它终端的支持不是特别友好(比如手机端),所以JSP的方式受到了局限。
同理,同时期也有其它的系统开发技术也同样存在这样的局限。
书接上文,软件公司介绍说,RESTful风格就是:做页面的技术(VUE、HTML、CSS、JS等)你就专门做页面,做APP的技术就只关注APP(Android、IOS、鸿蒙等),各种技术所构建的系统都各自只关注自己技术范围内的事,各种技术之间不再进行特定的约定通信方式,只采用http通信携带服务请求数据即可。所以小明公司采用这种风格构建系统,可以在系统交互方面做到最大的解耦,对于服务端来说不必再关注调用方是何种系统,只要调用方把数据封装成服务接口需要的格式,使用HTTP通信方式把数据发过来就可以了。