REST是一种ROA(Resource Orientation Arichtecture 资源相关框架)。REST接口和RPC(SOAP+WSDL服务所采用的)都是为程序开发人员提供的接口(programming web)。
人们往往使用复杂的分布式网络架构(称之为“Big Web Service” WS-*协议栈)来构建网络。ROA(Resource oriented Architecture)作为代替RPC(SOAP+WSDL服务所采用的)架构的简单方案
统一了两种网络:一种是为人类所理解的web(human web)一种是程序高手所使用的web(programming web)将这两种统一为在一组服务器上运行,采用一组协议并遵守一定设计原则的万网网络。
web服务框架解决两个问题:
(1)客户端想对服务器做什么操作,即http方法字段
(2)客户端告诉服务器对哪些数据进行操作,即作用域信息(可以放在URI中或者实体主体中)
常见的服务器框架有三种:
(1)REST:方法信息都在HTTP协议的方法字段中,作用域(scope information)都在URI中
(2)RPC:方法和作用域都封装在信封(envelope)字段或者报头字段,常常把SOAP信封放在HTTP信封中传递,各个RPC服务采用自己的服务。URI不变,总是使用HTTP POST方法
(2)REST和RPC混合式:把一个REST服务过多的采用POST方法
区别:
REST:||方法信息放在HTTP-method字段中,作作用域字段放在URI中||不同的作用域暴露不同的URI||
RPC: ||方法字段和作用域字段都放在XML文件中||不同的作用域暴露相同的URI||
怎么解释RPC:
有一种简单的RPC成为XML-RPC,客户端将带有methodCall和params标签的XML文档放在HTTP实体主体中
{
error: “Invalid API key”
}
8. RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。
比如,当用户向api.example.com的根目录发出请求,会得到这样一个文档。
{“link”: {
“rel”: “collection https://www.example.com/zoos“,
“href”: “https://api.example.com/zoos“,
“title”: “List of zoos”,
“type”: “application/vnd.yourformat+json”
}}
详细见:阮一峰的网络日志 :http://www.ruanyifeng.com/blog/2014/05/restful_api.html
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/samdy1990/article/details/46710529