关于SOAP、REST、RESTful的理解

SOAP

百度百科的解释:Simple Object Access Protocol,简单对象访问协议,它是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
W3C的解释:简单对象访问协议是一种通信协议。用于应用程序之间的通信,是一种用于发送消息的格式,被设计用来通过因特网进行通信,它独立于平台,独立于语言,基于XML,简单可扩展,允许绕过防火墙

REST

Representational State Transfer,表述性状态传递,简称REST,一种软件架构风格。
REST 是基于资源的,每个资源都有一个唯一的资源标识符,同一个资源具有多种表现形式(xml,json等),对资源的各种操作不会改变资源标识符,所有的操作都是无状态的

特征 解释
客户-服务器 提供服务的服务器和使用服务的客户需要被隔离对待
无状态 来自客户的每一个请求必须包含服务器处理该请求所需的所有信息。换句话说,服务器端不能存储来自某个客户的某个请求中的信息,并在该客户的其他请求中使用
可缓存 服务器必须让客户知道请求是否可以被缓存
分层系统 服务器和客户之间的通信必须被这样标准化:允许服务器和客户之间的中间层(Ross:代理,网关等)可以代替服务器对客户的请求进行回应,而且这些对客户来说不需要特别支持
统一接口 客户和服务器之间通信的方法必须是统一化的,GET,POST,PUT.DELETE, etc
支持按需代码 服务器可以提供一些代码或者脚本(Ross:Javascrpt,flash,etc)并在客户的运行环境中执行。这条准则是这些准则中唯一不必必须满足的一条
RESTful

RESTful是REST的派生,下面罗列出RESTful的几个最佳实践

  • http动词
    • post
    • get
    • put
    • delete
  • 状态码
    • 200、201、202
    • 400、401、403、404
    • 500
  • 错误码:自定义的错误ID号,比如微信的错误码
  • 统一描述错误:错误码,错误信息,当前url
  • 使用token令牌来授权和验证身份
  • 版本控制
  • 测试与生产环境分开
  • url语义要明确,最好望文知意
  • 最好有一份比较标准的文档

参考文档:REST API详解RESTful 架构详解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章