带上RESTful的金手铐,你累吗?
1. 首先RESTful是一套规范,不是框架,它是来约束你的。也不关心生产效率的提高。就好像使用汇编开发应用,性能是快了,但是生产效率很低。RESTful它需要你在路由上定义很多规则来解释的URL,假如你有1000个接口,你是不是得写1000个正则表达式来解释URL,还得管理它不让它出错,成本是不是很高?业务代码都没有写,就折腾这些去了。
2. 在开发的层面上,把这么多参数堆积在url上,看起来其实不直观。举个类比的例子。
例子1 在linux命令行里,文件,目录过长的路径是不是看起来很头疼,看都不想看。 你就很想使用tree命令查看结构化的目录文件
例子2 在写代码的函数里,是不是入参个数超过6个,就开始觉得这个函数看起来很麻烦了?
url上带有各种参数,请问如何调试?假如我要批量删除,如果100个用户,拼接的url是不是特别长?
以上的问题,都是可以通过程序员的聪明才智在RESTful规范下解决,但是值得你这样去做吗?
3. 个人感受,我觉得RESTful是web时代的产物,因为浏览器里面就只能输入url,他们希望通过url就能实现web的全部功能。但是现在这个时代,就算是网页web也是要很多响应式的交互,并不是论坛,网页那种简单的数据的陈列展示了。
4. RESTful 把各种资源都拆分这么细,让客户端自己分别请求,就好像客户端在操作数据库一样。RESTful api,特别是一些开放平台,面向不定的客户端,它无法知道它的使用者到底要如何使用它,所以它为了灵活性就相当于把数据库的操作能力转了一下给了客户端 。可是app最好不要请求这么多接口,最好一次请求返回整个页面的数据。‘
所以使用RESTful ,你考虑一下生产效率,维护成本,调试方便,有没有做成开发平台的必要性?
带上RESTful的金手铐,你累吗?的更多相关文章
- 利用DNSLOG获取看不到的信息(给盲注带上眼镜)
一.前言 本文原创作者:sucppVK,本文属i春秋原创奖励计划,未经许可禁止转载! 毕业设计总算搞得差不多了,这个心累啊.这不,完成了学校的任务,赶紧回来给蛋总交作业.今天给大家分享一个姿势吧,不是 ...
- 【HDU 4940】Destroy Transportation system(无源无汇带上下界可行流)
Description Tom is a commander, his task is destroying his enemy’s transportation system. Let’s repr ...
- 记得ajax中要带上AntiForgeryToken防止CSRF攻击
经常看到在项目中ajax post数据到服务器不加防伪标记,造成CSRF攻击 在Asp.net Mvc里加入防伪标记很简单在表单中加入Html.AntiForgeryToken()即可. Html.A ...
- ZOJ 2314 带上下界的可行流
对于无源汇问题,方法有两种. 1 从边的角度来处理. 新建超级源汇, 对于每一条有下界的边,x->y, 建立有向边 超级源->y ,容量为x->y下界,建立有向边 x-> 超级 ...
- Excel等外部程序点击链接会带上IE信息的bug
今天碰到一个问题,在Excel内点击链接到默认浏览器Chrome打开,奇怪的是服务端收到的Session一直对不上. 查了很久发现这个Excel到Chrome的跳转竟然带上了IE的Cookie 和 U ...
- 切记ajax中要带上AntiForgeryToken防止CSRF攻击
在程序项目中经常看到ajax post数据到服务器没有加上防伪标记,导致CSRF被攻击,下面小编通过本篇文章给大家介绍ajax中要带上AntiForgeryToken防止CSRF攻击,感兴趣的朋友一起 ...
- echo json数据给ajax后, 需要加上exit,防止往下执行,带上其他数据,到时ajax失败
01返回json数据给ajax后需要加上exit.返回json数据前不能有其他输出 function apply(){ if(IS_POST){$info['status'] = 1; echo js ...
- idhttp提交post带参数并带上cookie
有这么一个提交连接 http://www.XXXXXX.com/test.php?p1=411328&p2=1&d1=HeroSkinList 一共有三个参数[p1] [p2] [ ...
- Django 如何让ajax的POST方法带上CSRF令牌
问题 大家知道,在大前端领域,有一种叫做ajax的东东,即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),它被用来在不刷新页面的情况下,提 ...
随机推荐
- 设计模式学习--Prototype
What Prototype:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. Why Prototype适用于在一个类的实例有几种不同的状态组合的一种时,建立相应的数目的原型并克隆她 ...
- SecureCRT安装使用
● 解决自动断开 echo "TMOUT=6000 " >>/etc/profile source /etc/profile 在连接上右键属性,然后“终端”,“反空闲” ...
- Eonasdan bootstrap datetimepicker 使用记录
开始用的 bootstrap日期选择控件是 bootstrap-datepicker : $('#visit_date').datepicker({ todayHighlight: true, sta ...
- nvidia-smi failed because it couldn't communicate with the nvidia driver
Ubuntu装好CUDA之后过段时间提示NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. NV ...
- 函数调用堆栈及活动记录 堆栈溢出 stack overflow
小结: 1.当被调函数返回主调函数时,被调函数的 活动记录-activation record / 堆栈帧-stack frame 被 弹出-popping 程序执行栈-program executi ...
- 【实战解析】基于HBase的大数据存储在京东的应用场景
京东技术 https://mp.weixin.qq.com/s?src=11×tamp=1551342955&ver=1455&signature=0hYp8OsxY ...
- 图->存储结构->十字链表
文字描述 十字链表是有向图的另一种链式存储结构. 在十字链表中,对应于有向图中每一条弧有一个结点,对应于每个顶点也有一个结点.这些结点的结构如下所示: 在弧结点中有5个域: 尾域tailvex和头域h ...
- java之旅_高级教程_java泛型
摘自:http://www.runoob.com/java/java-generics.html JAVA泛型 java泛型(generics)是JDK5中引入的新特性,泛型提供了编译时类型安全检测机 ...
- java kafka 生产者消费者demo
一.修改kafka server.porperties的ip是你本机的ip listeners=PLAINTEXT://192.168.111.130:9092 二.生产者的例子 import o ...
- HTML5 自定义属性
先声明 HTML5的自定义属性浏览器支持性不太好 目前只有firefox6+和chrome浏览器支持 元素除了自带的属性外 另外也可以加自定义属性 不过需要在前面加上data- 下面举个例子 ...