简单说说RESTful风格API有什么优点和缺点

简单说说RESTful风格API有什么优点和缺点

15195发表于2016-11-10

我只先强调一点,rest是架构风格,http是这个风格下的产物。如果无法理解这一点,那么后续怎么解释都是错的。

透明性,暴露资源存在。

一、RESTful风格API有什么优点

充分利用 HTTP 协议本身语义。
无状态,这点非常重要。在调用一个接口(访问、操作资源)的时候,可以不用考虑上下文,不用考虑当前状态,极大的降低了复杂度。
HTTP 本身提供了丰富的内容协商手段,无论是缓存,还是资源修改的乐观并发控制,都可以以业务无关的中间件来实现。

作者:松鼠奥利奥
链接:https://www.zhihu.com/question/20130130/answer/14091147
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

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
链接:https://www.zhihu.com/question/20130130/answer/25032771
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

一个文件操作接口,传统模式:

api/getfile.php - 获取文件信息,下载文件
api/uploadfile.php - 上传创建文件
api/deletefile.php - 删除文件

RESTful:

api/file 只需要这一个接口

GET 方式请求 api/file - 获取文件信息,下载文件
POST 方式请求 api/file - 上传创建文件
DELETE 方式请求 api/file - 删除某个文件


作者:于江水
链接:https://www.zhihu.com/question/20130130/answer/76604696
来源:知乎
著作权归作者所有,转载请联系作者获得授权。


二、RESTful风格API有什么缺点和不足

一个适用于简单操作的接口规范而已,无规矩不成方圆,复杂操作并不适用,还是看业务发展需求的

适合CRUD并且只适合CRUD,有的浏览器可能不支持POST、GET之外的提交方式,要特殊处理,API容易给让误解中能进行增、删、查、改等操作。


三、总结

RESTful风格只是一种架构风格,种思想,我们不能一概的说它的好或不好。存在即合理,在软件开发过程中,无论是采用RPC风格还是RESTful,只要是适合自己业务就是最好的。



小编蓝狐