没有合适的资源?快使用搜索试试~ 我知道了~
理解RESTful Api设计.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 41 浏览量
2022-07-09
19:02:56
上传
评论
收藏 899KB DOC 举报
温馨提示
试读
13页
理解RESTful Api设计.doc
资源推荐
资源详情
资源评论
理解 RESTful Api 设计
REST
REST(REpresentational State Transfer)是 Roy Fielding 博士于 2000 年在他的博士论文中
提出来的一种软件架构风格(一组架构约束条件和原则)。在该论文的 中文译本 中翻译是”
表述性状态移交”。
原则
网络上的所有事物都被抽象为资源
每个资源都有一个唯一的资源标识符
同一个资源具有多种表现形式(xml,json 等)
对资源的各种操作不会改变资源标识符
所有的操作都是无状态的
资源(Resources)
资源是一种信息实体或者说是一个具体信息,能够被想象出名字。比如多个图书馆,那么
便是可使用的图书馆资源,而图书馆内,多个楼层,那么便拥有了多个楼层的资源,各楼层
提供了不同服务,那么服务也是资源。在互联网中,可以用一个 URI(统一资源定位符)
指向它,每种资源对应一个特定的 URI(如同一本书,按照书页码去定位哪一页,目的是
定位资源)。访问这个特定 URI 便获取到了这个对应的资源。
表述(REpresentations)
资源的表述是一段对于资源在某个特定时刻的状态的描述,通过表述捕获资源,并在组件
间(客户/服务器)移交该表述。表述有多种格式,如 HTML/XML/JSON/纯文本/图片/视频/音
频等。具体的表述格式,可以在 HTTP 请求头信息中用 Accept 和 Content-Type 字段指
定,请求/响应方向的表述通常使用不同的格式。
状态移交(State Transfer)
对于组件间而言(客户/服务器),资源的请求是一个互动过程。通过表述捕获资源当前或是
预期的状态,相当于获得了资源的状态。通过移交代表资源的表述,来将资源在组件的两者
之间进行传递,进而改变应用状态。如当客户端获取了资源后,自身状态处于稳定,当再次
获取资源后自身状态再次处于稳定。客户端操作并对服务端发起请求,在资源上执行各种动
作而打破资源自身状态,达到客户端操作所期望状态。
RESTful Api
与 REST 相比多了一个 ful,就英语层面来说是一个形容词,RESTful 翻译成中文为“REST
式的”,满足了 REST 架构风格的应用程序设计的 Api 则便是 RESTful Api,即 REST 式
的 Api。
以往 Api 设计
在 MVC 项目中,经常都是设计成动宾结构给 ajax 调用
/getCustomers
/getCustomersByName
/getCustomersByPhone
/getNewCustomers
/verifyCredit
/saveCustomer
/updateCustomer
/deleteCustomer
可有时却因为没有统一的规范,多人协作时,对于动词的描述上也没有统一,时长出现了
类似如下的各类叫法,不能说这种情况有什么弊端,毕竟这种方式也是正常工作着。
/getCustomers
/getAllCustomer
/getCustomerList
/getPagedCustomer
/queryCustomers
/queryAllCustomers
/queryCustomerList
...
相比之下,RESTful Api 提供了更为标准化,规范化的 URL 写法。
设计规范
考虑 Api 设计时,URI 中不能有动词,URI 的目的是定位资源,而具体的对资源的操作,
是借助 HTTP 的动词完成,与早期 Api 设计相比,本身的思路是不同的,原来更多的是考
虑函数式编程或者叫做面向行为的服务建模,比如 RPC,远程调用一个函数,那么 Api 设
计便是会考虑为动词名词格式,而对于 REST 风格来讲,是面向资源的服务建模。而对于
资源而言,可以是对象、数据或是查询服务。
HTTP 动词
对于一个系统而言,对外提供的功能总体上划分为两类:
获取系统资源,主要包括读取资源和资源描述信息。
对系统资源进行变更,主要包括写入资源,对已有资源状态的变更,删除已有资源。
对于这其中使用到的一些动词,使用 HTTP 的动词描述来承担对资源执行的行为,动词
通常使用以下几种。对于 HTTP1.1 规范中的其他几个动词(如 OPTIONS 等)则不再介绍。
剩余12页未读,继续阅读
资源评论
书博教育
- 粉丝: 1
- 资源: 2837
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Android源码新基线代码更新的方法
- 1_二级程序设计题(34).rar
- 二级程序调试题(填空27+改错7).docx
- HM2314-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于深度学习的危险驾驶检测算法python源码+视频判断是否闭眼或者张开嘴哈欠和吸烟打电话等手势行为功能涵盖7类.zip
- Free-Fs 开源文件管理系统
- HM2314B-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 毕业设计:Python高校学生学业预警系统(源码 + 数据库 + 说明文档)
- HM2312-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 毕业设计:Python的在线自主评测系统(源码 + 数据库 + 说明文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功