Restful Api 的好与坏

restful 的特色是接口少

get,put,post,delete

好处是容易记, 统一.

但是业务上往往不会这么简单.

不同的 user/roles 调用同一个 get 接口, 出来的结果不一定相同.

或许 admin 可以看见所有的 resource

但是 member 只能看见自己创建的 resource.

又或许 admin 可以看见 resource 所有的属性, 但是 member 只能看见某一些属性.

要在 restful api 上处理这样的需求, 你就要把逻辑放到同一个接口里. ( 不是说不能实现, 也不是说不优雅, 只是觉得以前写 RPC 的模式更简单些. )

那如果我们不使用 restful 的话, 我们可以很容易的写 2 个接口来区分开这些逻辑.

写权限也变得很容易, 扩展也很容易.

所以经验告诉我, 鱼与熊掌, 难以兼得.

所以要依据项目自己衡量.

时间: 2024-12-27 22:33:10

Restful Api 的好与坏的相关文章

利用 Django REST framework 编写 RESTful API

利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framework 真乃一大神器,可以轻易的甚至自动化的搞定很多事情,比如: 自动生成符合 RESTful 规范的 API 支持 OPTION.HEAD.POST.GET.PATCH.PUT.DELETE 根据 Content-Type 来动态的返回数据类型(如 text.json) 生成 browserable

Yii2框架RESTful API教程(二) - 格式化响应,授权认证和速率限制

之前写过一篇Yii2框架RESTful API教程(一) - 快速入门,今天接着来探究一下Yii2 RESTful的格式化响应,授权认证和速率限制三个部分 一.目录结构 先列出需要改动的文件.目录如下: web ├─ common │ └─ models │ └ User.php └─ frontend ├─ config │ └ main.php └─ controllers └ BookController.php 二.格式化响应 Yii2 RESTful支持JSON和XML格式,如果想指定

flask开发restful api

在此之前,向大家说明的是,我们整个框架用的是flask + sqlalchemy + redis.如果没有开发过web,还是先去学习一下,这边只是介绍如果从开发web转换到开发移动端.如果flask还不是很熟悉,我建议先到这个网站简单学习一下,非常非常简单.http://dormousehole.readthedocs.org/en/latest/ 一直想写一些特别的东西,能让大家学习讨论的东西.但目前网上的很多博客,老么就按照官方文档照本宣读,要么直接搬代码,什么都不说明.我写这个系列的博客,

[CI] 使用CodeIgniter框架搭建RESTful API服务

在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念,以及使用CodeIgniter框架实现RESTful API的方法.转眼两年过去了,REST在这两年里有了很大的改进.我对于前一篇博客中的某些方面不是很满意,所以希望能利用这次机会写一个更加完善的版本.我的项目基于Phil Sturgeon的CodeIgniter REST Server,遵循他自己的DBAD协议.Phil的这个项目很棒,干净利落,简单实用,并

3.Spring Boot中使用Swagger2构建强大的RESTful API文档

原文:http://www.jianshu.com/p/8033ef83a8ed 由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端. 这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发.Android开发或是Web开发

理解restful API

简介 随着Web开发的不断开发, 低耦合的需求被提上了日程, 催生出了前后端分离的方案. 前后端分离使前端和服务器端相互独立, 细化前后端开发, 于是近几年API架构风行. RESTful架构由Roy Fielding在一篇博士论文中提出. `REST, 即Representational State Transfer的缩写, 中文可以译为表现层状态转化 表现层可以理解为资源的表现层, 资源在网络通信中无处不在, 一段文本, 一张图片, 一个文档都是资源, JSON是现在最常用的资源表示格式.

开发restful api总结的几点小经验

与其说是开发,不如说是打补丁! 是个jesery+spring的restful service,加了一个权限校验部分,做了一些调整. 本来其实很简单的一个事,后来发现,这个代码太霸道.本来传个参数是action_id 这个东西,结果参数名字有如下:action_id,actionID,id 我只能说傻傻分不清楚到底你传的什么, 因为还有其他id,参数名字参考刚才的. 代码中的也是混乱,虽然我知道有很多先人在修改了,但是也不至于这样吧. 吐槽完毕. 1.N次开发restful api主意版本迭代,

拿nodejs快速搭建简单Oauth认证和restful API server攻略

拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最近一直在鼓捣这个东西,拿出来分享下一下经验吧,其实很简单,一点也不难. 首先需求是这样,给自己的网站要增加API服务,API分为两种,公共的和私有授权的,授权的使用Oauth方法认证身份,API格式均为JOSN和JSONP. 嗯,别的语言我也没怎么学过,首先是找合适的框架进行实现吧.本身网站使用的e

restful api (转)

RESTful API 概述 参考地址 RESTful架构是一种流行的互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便.REST是Representational State Transfer的缩写,翻译为“表现层状态转化”.表现层其实就是资源,因此可以理解为“资源状态转化”.网络应用上的任何实体都可以看作是一种资源,通过一个URI(统一资源定位符)指向它. 表现层(Representation) “资源”是一种信息实体,它可以有多种外在表现形式.我们把“资源”具体呈现出来的形式叫做它的