Rest成熟度4层模型

Rest成熟度4层模型

0级:HTTP 远程调用

用医生预约做例子,医院提供appointmentService远程服务接口

查询医生的空闲时间

POST /appointmentService HTTP/1.1
[various other headers]

<openSlotRequest date = "2010-01-04" doctor = "mjones"/>

HTTP/1.1 200 OK
[various headers]

<openSlotList>
  <slot start = "1400" end = "1450">
    <doctor id = "mjones"/>
  </slot>
  <slot start = "1600" end = "1650">
    <doctor id = "mjones"/>
  </slot>
</openSlotList>

预约

POST /appointmentService HTTP/1.1
[various other headers]

<appointmentRequest>
  <slot doctor = "mjones" start = "1400" end = "1450"/>
  <patient id = "jsmith"/>
</appointmentRequest>

HTTP/1.1 200 OK
[various headers]

<appointment>
  <slot doctor = "mjones" start = "1400" end = "1450"/>
  <patient id = "jsmith"/>
</appointment>

1级:资源级

跟远程调用区别,现在每一个独立的资源有独立的请求地址。
查询医生的空闲时间

POST /doctors/mjones HTTP/1.1
[various other headers]

<openSlotRequest date = "2010-01-04"/>

HTTP/1.1 200 OK
[various headers]

<openSlotList>
  <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"/>
  <slot id = "5678" doctor = "mjones" start = "1600" end = "1650"/>
</openSlotList>

预约

POST /slots/1234 HTTP/1.1
[various other headers]

<appointmentRequest>
  <patient id = "jsmith"/>
</appointmentRequest>

HTTP/1.1 200 OK
[various headers]

<appointment>
  <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"/>
  <patient id = "jsmith"/>
</appointment>

2级:动作级

查询医生的空闲时间

GET /doctors/mjones/slots?date=20100104&status=open HTTP/1.1
Host: royalhope.nhs.uk

HTTP/1.1 200 OK
[various headers]

<openSlotList>
  <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"/>
  <slot id = "5678" doctor = "mjones" start = "1600" end = "1650"/>
</openSlotList>

预订

POST /slots/1234 HTTP/1.1
[various other headers]

<appointmentRequest>
  <patient id = "jsmith"/>
</appointmentRequest>

HTTP/1.1 201 Created
Location: slots/1234/appointment
[various headers]

<appointment>
  <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"/>
  <patient id = "jsmith"/>
</appointment>

3级:状态级

GET /doctors/mjones/slots?date=20100104&status=open HTTP/1.1
Host: royalhope.nhs.uk

HTTP/1.1 200 OK
[various headers]

<openSlotList>
  <slot id = "1234" doctor = "mjones" start = "1400" end = "1450">
     <link rel = "/linkrels/slot/book"
           uri = "/slots/1234"/>
  </slot>
  <slot id = "5678" doctor = "mjones" start = "1600" end = "1650">
     <link rel = "/linkrels/slot/book"
           uri = "/slots/5678"/>
  </slot>
</openSlotList>

POST /slots/1234 HTTP/1.1
[various other headers]

<appointmentRequest>
  <patient id = "jsmith"/>
</appointmentRequest>

HTTP/1.1 201 Created
Location: http://royalhope.nhs.uk/slots/1234/appointment
[various headers]

<appointment>
  <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"/>
  <patient id = "jsmith"/>
  <link rel = "/linkrels/appointment/cancel"
        uri = "/slots/1234/appointment"/>
  <link rel = "/linkrels/appointment/addTest"
        uri = "/slots/1234/appointment/tests"/>
  <link rel = "self"
        uri = "/slots/1234/appointment"/>
  <link rel = "/linkrels/appointment/changeTime"
        uri = "/doctors/mjones/slots?date=20100104@status=open"/>
  <link rel = "/linkrels/appointment/updateContactInfo"
        uri = "/patients/jsmith/contactInfo"/>
  <link rel = "/linkrels/help"
        uri = "/help/appointment"/>
</appointment>

各个级别的意义

  • 资源级:把复杂单一的入口,拆分成独立的资源控制
  • 动作级:给资源定义了标准,统一的动作
  • 状态级:提供了可发现的,自描述的接口

原文

时间: 2024-09-20 07:55:13

Rest成熟度4层模型的相关文章

TCP/IP四层模型和OSI七层模型简介

表1-1是 TCP/IP四层模型和OSI七层模型对应表.我们把OSI七层网络模型和Linux TCP/IP四层概念模型对应,然后将各种网络协议归类. 表1-1  TCP/IP四层模型和OSI七层模型对应表 OSI七层网络模型 Linux TCP/IP四层概念模型 对应网络协议 应用层(Application) 应用层 TFTP, FTP, NFS, WAIS 表示层(Presentation) Telnet, Rlogin, SNMP, Gopher 会话层(Session) SMTP, DNS

osi模型-为什么说osi七层模型没有内置的安全机制啊?

问题描述 为什么说osi七层模型没有内置的安全机制啊? osi的表示层不是会对数据进行加密的吗? 补足30字............................................ 解决方案 不是加密吧 只是数据转换等 解决方案二: 那总要有基础的传输机制吧,在这些机制的基础上构建安全机制,比如SSL

如何理解持久层 业务层 表现层 模型层

问题描述 如何理解持久层业务层表现层模型层?还有service层DAO层等等 解决方案 解决方案二:dao层负责数据交互,内容简单.只是最终的数据处理而已.service层,进行各种逻辑处理.action,最好简单到只需要调用service的方法而已...解决方案三:Dao层负责与数据库交互,sql,hql放在Dao层,最好不要侵入Service层.Service层负责处理业务业务逻辑,Action层负责控制转发,涉及业务逻辑的代码不要侵入到Action层,个人理解解决方案四:DAO:数据交互层

OSI网络结构的七层模型

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为"中国PE第一股",市值超1000亿元.  ------------------------------------------------------------------------------

网络基础一 交换机 路由器 OSI7层模型

第1章 网络基础 1.1 网络的出现        解决计算机通讯的需求        实现计算机信息可以传递 1.2 主机之间实现通讯基本要求(三要素) ①. 需要在两台主机之间建立物理连接,物理连接的方式有网线 光纤线 wifi 蓝牙,将这些方式统称为介质: ②. 两台主机可以识别数据信息,通过二进制数的方式,利用制定好的协议标准. ③. 将二进制数转换为电信号,从而可以让介质识别传输,利用网卡发送/接收数据:     在发送数据的时候,将二进制数转换为电信号        在接收数据的时候

ISO/ OSI七层模型结构体系

LAN和WAN的通信是由一种网络通信模型?开放系统互连( OSI )来指导的.OSI模型是两家标准化组织?国际标准化组织( ISO )和美国国家标准协会( ANSI )的产物.ISO代表了100多个国家在经济.人文.科学和技术标准上的发展,ANSI则与美国商界.政府机构和国际组织联手,建立了商业产品(包括网络和计算机产品在内)的标准.OSI模型于1974年开发,应用于LAN和WAN的通信,充分体现了为网络软件和硬件实施标准化做出的努力.多年以来,OSI模型通过以下几方面的功能促进了网络通信的发展

交互行为量化方法之GOMS击键层模型

一直在关注体验量化方面的理论,剑虹在之前的博文里分享了关于体验量化的一些方法,受益匪浅. 关于行为层的量化方法我想再补充一下goms方法中的击键模型,这种模型的好处在于可操作性更强,设计师可以短时间内独立完成度量. 击键模型中用户的交互行为被分解为几个元动作,每个元动作都通过大量的测试得出一个平均时长(见下表),通过这些元动作的累加得出界面设计方案需要的操作时间,来验证和对比各种方案的优劣.(根据个体不同元动作的耗时不同,但对大部分对比性评估而言采用典型值足够了,如需要精确的绝对时间可以参照cp

智慧城市成熟度和基准评估模型

TM Forum智慧城市成熟度和基准模型,可以迅速评估智慧城市五个关键维度的利弊,并制定详细的目标,说明如何在未来两到五年内完成转型. 模式的特点包括: 评估所有智慧城市现状.模式简单快捷,同时也能全面覆盖智转型的关键问题.评估范围详细具体,现状评估准确. 更加清楚城市其他领域的问题和成果.如果模式按以下方式--一群城市领导人组成,那么每个人都将更好地了解城市如何完成转型. 预测未来发展.成熟度模型建成后,针对不同方面,设定明确的转型目标,总述未来两到五年的发展态势. 受益于转型成功的全球最佳实

用MVC模型引导你的WEB设计思路

web|设计 作者的blog:http://blog.csdn.net/oyiboy 习惯于过程式的开发,一直向往着面向对象.无奈半路出家人,没有一点内力基础,看了一大堆面向对象的书也只是看得一头雾水.对于MVC的概念也是偶然了解到的,感觉能和WEB开发结合起来让项目面向对象化.以下是我一点点心得.先介绍一下MVC的概念:MVC(Model-View-Controller),即把一个应用的输入.输出.处理流程按照Model.View.Controller的方式进行分离,这样一个应用被分成三个层-