举例说明的好处,RESTful 到底有哪些好处

329被浏览43743分享邀请回答30添加评论分享收藏感谢收起简单说说RESTful风格API有什么优点和缺点_蓝狐软件工作室
软件系统架构
Posted By : 网络转载
我只先强调一点,rest是架构风格,http是这个风格下的产物。如果无法理解这一点,那么后续怎么解释都是错的。
透明性,暴露资源存在。
一、RESTful风格API有什么优点
充分利用 HTTP 协议本身语义。
无状态,这点非常重要。在调用一个接口(访问、操作资源)的时候,可以不用考虑上下文,不用考虑当前状态,极大的降低了复杂度。
HTTP 本身提供了丰富的内容协商手段,无论是缓存,还是资源修改的乐观并发控制,都可以以业务无关的中间件来实现。
作者:松鼠奥利奥
链接:/question//answer/
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
1. 轻量,直接基于http,不在需要任何别的诸如消息协议。get/post/put/delete为CRUD操作
2. 面向资源,一目了然,具有自解释性。
3. 数据描述简单,一般以xml,json做数据交换。
不要用你的世界观YY出一个协议啦,你始终没有HTTP考虑的更全面,更易用,更有扩展性。
取东西就要GET(GET就是安全的,不会修改服务资源),新增就要POST(POST就是不安全的),修改就要PUT(PUT就要幂等),删除就是DELETE(DELETE就要幂等)....
优雅的展示你的资源,甚至让别人不看协议就能找到这个资源,这个世界岂不更简单:
/古文/宋词/水调歌头
/古文/search?q=苏轼
另外在服务端的架构设计时,URI展示了你的视野范围和抽象规则,从上面的URI,我应该是一个古文归档服务中,是按唐诗\宋词\元曲这样归的类。
可能还有我没体会到的好处,但以上这些,足以让我用它了。
作者:Chone
链接:/question//answer/
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
一个文件操作接口,传统模式:
api/getfile.php - 获取文件信息,下载文件
api/uploadfile.php - 上传创建文件
api/deletefile.php - 删除文件
api/file 只需要这一个接口
GET 方式请求 api/file - 获取文件信息,下载文件
POST 方式请求 api/file - 上传创建文件
DELETE 方式请求 api/file - 删除某个文件
作者:于江水
链接:/question//answer/
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
二、RESTful风格API有什么缺点和不足
一个适用于简单操作的接口规范而已,无规矩不成方圆,复杂操作并不适用,还是看业务发展需求的
适合CRUD并且只适合CRUD,有的浏览器可能不支持POST、GET之外的提交方式,要特殊处理,API容易给让误解中能进行增、删、查、改等操作。
RESTful风格只是一种架构风格,种思想,我们不能一概的说它的好或不好。存在即合理,在过程中,无论是采用RPC风格还是RESTful,只要是适合自己业务就是最好的。
本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
本文标题:简单说说RESTful风格API有什么优点和缺点
本文地址:/Article/626.html
本科学历,蓝狐软件工作室创始人。2009年开始从事软件开发行业,从事软件开发互朕网7年以上,3年以上项目管理和架构设计经验,具有丰富的电子商务行业的移动和Web应用的架构设计和开发经验。参与过高并发、高可用、分布式系统设计,熟悉SOA架构设计,有敏捷开发经验。熟悉.NET和Java EE相关技术和框架,熟悉Linux、Windows、Nginx、Mysql等服务器的部署和优化。熟悉主流的开发语言,擅长SQL Server、mysql、Oracle等主流数据库,通过了Oracle OCP 11g认证,有丰富的数据库性能优化和设计经验。独立开发了多个人作品:蓝狐seo管理系统、seo关键词按天计费系统、蓝狐软件工作室门户等。曾在多家移动互联网担当核心技术研发和管理工作,同时承担关键技术难点攻关和设计高性能的技术架构。把握平台的技术发展方向,对技术发展及时提出指导性意见。在提高平台的稳定性、性能、质量等方面做出了重要贡献。目前专职于为企业提供优质的信息化建设服务,其中不限于系统、软件定制开发和高端网站建设。
发表成功!写一下我对restful的理解,最近换工作面试的时候有问到我restful api的东西,工作中以前很多项目也是webapi + js前台控件的形式构建系统。实际上感觉restful太“理想化”,用起来不是特别顺手, 举例说明下:
先看看什么叫restful:
REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。
所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。
客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
GET /tickets # 获取ticket列表
GET /tickets/12 # 查看某个具体的ticket
POST /tickets # 新建一个ticket
PUT /tickets/12 # 更新ticket 12.
DELETE /tickets/12 #删除ticekt 12
实际上呢,不是所有的东西都是“资源”,尤其是在业务系统中,缺点如下:
有个接口是更新订单状态,你是用上面的GET POST PUT DELETE 哪个呢,看样子应该是PUT,但是路径呢PUT /tickets/12
我有时候多个接口 ,更新订单收款状态,更新订单支款状态,更新订单结算状态;
Restful 的路径明显不友好不够用;
再比如,批量删除,DELETE还好用么,DELETE /tickets/12 #删除ticekt 12 这种形式如果要传数组怎么办,url是不是不够友好?
再比如,Resuful要求 GET /tickets # 获取ticket列表 。我们曾经有个需求,对方会把不超过1000个订单id传给我们,我们系统过滤其中一部分特殊订单;这也是个查询服务,用GET /tickets # 获取ticket列表的形式,1000个订单id显然是超过GET url长度的,这里也不合适;再者,我想开发多个条件查询列表服务,路径这么浅显然不合适;
实际业务中,我们webapi的路径是这样的:systemAlias/controller/action
总结下规则:
简单查询尽量用GET,好处是可以直接带查询参数copy api路径;
复杂查询和更新用POST,用的最多;
不用PUT和DELETE,原因是增加复杂度,并没有带来什么好处
看看BAT的很多openapi,也是写着restful,实际没有严格遵守,都是get和post,这是也很多人不知道put和delete的原因
//根据订单id获取订单
GET oms/order/queryOrderById?id=value1&param2=value2
//根据订单id List获取订单
POST oms/order/queryOrderByIdList
//根据条件查询订单,带分页参数
POST oms/order/queryOrderByCondition
//更新订单收款状态
POST oms/order/updateOrderCollectionStatus
//批量更新订单收款状态
POST oms/order/updateOrderCollectionStatusInBatch
//批量更新订单收款状态
POST oms/order/updateOrderCollectionStatusInBatch
//批量删除订单,带操作来源
POST oms/order/deleteOrderInBatch
可能是我对Restful理解不够,觉得这种变种的服务路径才是最优解,有大侠欢迎教育 :)
阅读(...) 评论()10:37 提问
restful是什么 对javaweb开发起到什么作用什么时候需要用restful
restful是什么 对javaweb开发起到什么作用什么时候需要用restful
按赞数排序
restful是种风格,地址栏比较简洁
其他相关推荐(window.slotbydup=window.slotbydup || []).push({
id: '2014386',
container: s,
size: '234,60',
display: 'inlay-fix'
&&|&&0次下载&&|&&总68页&&|
您的计算机尚未安装Flash,点击安装&
阅读已结束,如需下载到电脑,请使用积分()
下载:30积分
0人评价61页
0人评价75页
0人评价61页
1人评价1页
2人评价2页
所需积分:(友情提示:大部分文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
文档内容侵权
已存在相同文档
不属于经济管理类文档
源文档损坏或加密
若此文档涉嫌侵害了您的权利,请参照说明。
我要评价:
下载:30积分}

我要回帖

更多关于 举例说明的好处 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信