首页 > 其他分享 >课程笔记整理 RESTful Web Service

课程笔记整理 RESTful Web Service

时间:2023-03-03 12:55:14浏览次数:35  
标签:XML Web Service 状态 URI REST 表示 RESTful 资源

RESTful Web Service

基本概念

REST 伪全称:Representational State Transfer

REST 真实全称:Application States Transfer among the resource's representation
资源表示(名词)之间的应用程序状态的转换

来源

相同资源表示在不同的应用程序之间可能有不同的状态,应用程序状态可以由资源表示(名词)来表示(动词)

实例:
资源表示:¥1000
应用程序及其状态

  • 购买1个苹果:支付
  • 购买1台 Apple:余额不足
REST 特征

资源表示(representations of resource) 名词

  • 特点
    • 无状态
    • 统一接口
    • URI 作为唯一标识
      基于 REST 的架构由通过 URI 进行唯一标识的资源信息构建
    • 支持多种信息格式
      • XML
      • JSON
      • XHTML
      • 以 API 文档的形式协商提出的新格式
  • 关键思想
    • 在 REST 系统中,资源被通过交换资源表示的形式操控
      个人理解:资源表示就代表资源本身,操控资源表示就相当于间接操控资源
    • 在 REST 系统中,通信主要通过资源表示的转移进行,状态被包含在资源表示之中

个人感受:REST 的关键思想就在于资源表示视角下对 资源通信 的新理解

  • 资源本身被抽象成资源表示
  • 通信过程及通信产生的结果被抽象为资源表示的转移(个人认为这里的转移理解成变化也没什么问题),由于状态包含在资源表示之中,所以也可以理解为资源表示状态的转移(变化)
REST 的构成
  • 资源:以 URI 为唯一标识的名词
  • 方法:操控名词的动词
    • POST:create
    • GET:read
    • PUT:update
    • DELETE:delete
如何理解 Representation ?

presetation:演示

Representation:再演(误)

Representation is how you view the state(唯心主义并感)

使用动词来改变应用状态或表示

为什么要用 REST ?
  • 基于 REST 的服务适用于

    • 客户无需使用特定的 API

    • 用户只需要使用标准的 HTTP

    • 可以用服务器测试(console)

  • Uniformity

    • URI 用作唯一标识
      URI 是最抽象的标准化接口
    • HTTP 统一接口
  • 脚本语言友好

与传统 Web Service 对比
对比角度 传统 RESTful
方法类型 客户方法为主 URI 为主
HTTP 定位 传输方法 作为协议
数据 结构化 参数暴露,存在安全性问题
与 SOAP 对比

就课件上给的图片来看,处理过程基本一致,参数形式不同

SOAP Server 接收 XML request 返回 XML Response
REST Server 接收 HTTP request 返回 XML Request

按照个人理解,就是两套不同的消息传递机制,对应不同的交互方式,或者说两种视角下的消息传递
SOAP 将数据看作数据,将传输看作传输
REST 将数据看作资源,将传输过程及其结果看作状态转换

总结

根据信息传递角度划分

  • RPC ~ XML:Remote Procedure Call ~ EXtensible Markup Language
    远程过程调用,消息格式常采用 XML
  • SOAP ~ XML:Simple Object Access Protocol ~ EXtensible Markup Language
    简单对象访问协议,协议指导下提供消息传递框架,消息格式常采用 XML
  • REST ~ JSON:Representational State Transfer ~ JavaScript Object Notation
    表述状态转移,架构风格,基于这种架构风格可以实现方便的资源调用,消息格式常采用 JSON

标签:XML,Web,Service,状态,URI,REST,表示,RESTful,资源
From: https://www.cnblogs.com/ba11ooner/p/17175220.html

相关文章