Restful api贝唐
译者按:
甚么是restful?甚么是api?二者女团起来又是甚么?api我们若想约莫能认知成,就是应用领域程序和他们想的天然资源或是web服务项目之间的外卖员。带着困惑就来研究几番。
1、关于REST
这是一类软件构架艺术风格,是英语(Representational State Transfer)的简写,译者为表现层状况切换,是由Roy Thomas Fielding教授建立的,在他的教授论文中提出的。那个构架并没有缔造新技术、模块或是服务项目,不是一类标准,主要是一类构架的不动点和准则,是一类软件构架的艺术风格,一类结构设计艺术风格。目地就是为了在合乎构架基本原理大前提下,能认知和评估结果在互联网基础上的应用软件的构架结构设计,得到机能强、操控性好、适于通讯的构架。(译者该文中所抒发)也就是说合乎那个艺术风格的构架都叫作restful,遵从rest构架艺术风格的应用领域程式设计USBestful web的数据服务项目展开可视化,就称为restfulapi。
2、RESTful
认知RESTful构架,需要紧密结合REST五个辅导准则,来列出下
标准化USB(uniform interface)
标准化USB是那个结构设计艺术风格的基本落脚点,减少耦合性,能让各模块独立展开改良、有五个管制
允诺中包涵天然资源id,惟一标记应用领域程序和伺服器之间可视化的每一个天然资源天然资源通过标记来操作方式,标准化的表示形式,api采用这些修正伺服器中天然资源状况最新消息人格形式化,能随身携带足够多的重要信息描述要处理的最新消息华数传媒驱动力应用领域状况,采用源文件静态驱动力其他天然资源可视化
应用领域程序-伺服器(client-server)
化伺服器模块,提高扩展性
无状况(stateless)
(1)伺服器不留存应用领域程序重要信息,应用领域程序推送的允诺,包涵所有必须的状况重要信息,会话重要信息由应用领域程序留存,伺服器端根据状况重要数据处理允诺
(2)伺服器可以Sonbhadra话状态重要信息传递给其他例如数据库服务项目,保持一段时间的状况重要信息,实现认证等机能
(3)应用领域程序可以切换到一个新状况的时候推送允诺重要信息
(4)一个或多个允诺被推送之后,应用领域程序处于一个状况变迁过程
可缓存(cacheability)
分层系统(Layered system)
应用领域程序是不知道是否直接连接到了最终目地伺服器,或是是中间伺服器,中间伺服器可以通过负载均衡或者共享缓存机制,提高系统扩展性,也便于安全策略部署
按需代码(code-on-demand)(可选)
可以推送可执行代码给应用领域程序的方式临时性扩展机能或是定制机能。(java applet、flash、javascript)允许通过下载和执行小程序或是脚本扩展机能。
3、RESTful API 有哪些特征
1、直观简短天然资源地址url
例如:https://cillian.space/resources
2、传输的天然资源:json、xml、yaml等
3、对天然资源的操作方式:post、get、put、delete
4、REST优点
1、利用缓存提高响应速度
2、通讯无状况性可让不同伺服器处理一系列允诺中的不同允诺
3、浏览器即可作为应用领域程序,简化软件需求
4、REST依赖性更小相比于其他在HTTP协议上的机制
5、兼容性更好
5、HTTP状况响应码
状况码由三个十进制数字组成,第一个数字定义类型,共5种:
1XX 相关重要信息,伺服器收到允诺,允诺者继续执行
2XX 成功,操作方式被接受并处理
3XX 重定向
4XX 应用领域程序错误,允诺语法错误或是无法完成允诺
5XX 伺服器错误,在处理允诺过程中出现错误
6、总结
1、在REST的构架艺术风格中,数据、功能都被视为天然资源,采用标准化天然资源标记符(定位)(URL)展开访问
2、简单明了的操作方式来操作方式天然资源,天然资源和表示形式分离,应用领域程序可以访问各种格式的内容,比如html、xml、pdf、JPEG、文本等
3、应用领域程序和服务器通过标准化USB和协议交换天然资源,通常是http协议,但不强制要求,并且http只是REST构架中一类,http并不等于rest
4、应用领域程序和伺服器的可视化都必须是无状况的
5、祝学习顺利!