简单理解一

就是用URL定位资源,用HTTP描述操作。

简单理解二

URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

官方定义

一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

以web开发举例

在设计web接口的时候,REST主要是用于定义接口名,接口名一般是用名次写,不用动词,那怎么表达“获取”或者“删除”或者“更新”这样的操作呢——用请求类型来区分。

比如,我们有一个students接口,对于“学生”我们有增删改查四种操作,怎么定义REST接口?

增加一个学生,uri: http://testcode.com/school/students 接口类型:POST

删除一个朋友,uri: http://testcode.com/school/students 接口类型:DELETE

修改一个朋友,uri: http://testcode.com/school/students 接口类型:PUT

查找朋友,uri: http://testcode.com/school/students 接口类型:GET

上面我们定义的四个接口就是符合REST协议的,请注意,这几个接口都没有动词,只有名词students,都是通过Http请求的接口类型来判断是什么业务操作。

举个反例

uri: http://testcode.com/school/addStudents 该接口用来表示增加学生,这就是不符合REST协议的接口。

建议

用HTTP Status Code传递Server的状态信息。比如最常用的 200 表示成功,500 表示Server内部错误,403表示Bad Request等。(反例:传统web开发返回的状态码一律都是200,其实不可取。)

REST风格接口意义

前后端分离。前端拿到数据只负责展示和渲染,不对数据做任何处理。后端处理数据并以JSON格式传输出去,定义这样一套统一的接口,在web,ios,android三端都可以用相同的接口,节约开发成本以及便于同一调试。

restapi是什么意思_简单理解什么是REST和RESTful相关推荐

  1. java阻塞队列作用_简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用...

    简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用 Condition:可以理解成一把锁的一个钥匙,它既可以解锁(通知放行),又可以加锁(阻塞) n ...

  2. base cap 分布式_简单理解CAP-BASE

    原标题:简单理解CAP-BASE 1.CAP CAP是分布式系统的指导理论,是NoSQL数据库的理论基石.CAP其实就是对分布式系统的特性总结,即一致性(Consistency).可用性(Availa ...

  3. python装饰器的通俗理解_简单理解Python装饰器

    Python有大量强大又贴心的特性,如果要列个最受欢迎排行榜,那么装饰器绝对会在其中. 刚接触装饰器,会觉得代码不多却难以理解.其实装饰器的语法本身挺简单的,复杂是因为同时混杂了其它的概念.下面我们一 ...

  4. restapi是什么意思_深入理解什么是RESTful API ?

    前言:最近两年很火爆的网络框架Retrofit,使用它的时候,查看文档会告诉你,要求后台的服务器哥们必须符合REST规范给你设计接口,作为安卓开发工程师来说,我就很奇怪了,REST规范到底是啥?本着极 ...

  5. 二分图带权最大匹配费用流_简单理解二分图与匈牙利算法

    最近在看DETR等论文时时,看到了使用了二分图的最大匹配,对于没有计算机基础的我表示直接上来???,因此本篇博客主要介绍什么是二分图,以及二分图的匹配的匈牙利算法. 首先我们来看看二分图的定义: 二分 ...

  6. restapi是什么意思_网上整理的对于Rest和Restful api的理解

    一.什么是Rest? REST不是"rest"这个单词,而是几个单词缩写 -- REpresentational State Transfer 直接翻译:表现层状态转移,但这个翻译 ...

  7. props写法_简单理解vue中Props属性

    本文实例为大家解析了vue中Props的属性,供大家参考,具体内容如下 使用 Props 传递数据 组件实例的作用域是孤立的.这意味着不能并且不应该在子组件的模板内直接引用父组件的数据.可以使用 pr ...

  8. git pull 是到工作区还是暂存区_每天一Git之简单理解工作区和暂存区

    每天一Git之简单理解工作区和暂存区 1. 工作区与暂存区命令初体验 1.1. 暂存区文件与文件夹管理 [root@number ~]# cd GitDir/git_learning/ [root@n ...

  9. vue函数如何调用其他函数?_编程|如何简单理解函数的传参、返回、调用

    1 函数内部变量的局部性 在一个函数中定义的变量(包括实参),其作用域仅限于定义它的函数中,在其它的函数不能使用,这种变量称为"局部变量". 局部变量的作用域:函数内部声明和定义的 ...

最新文章

  1. 深度学习在计算机视觉领域(包括图像,视频,3-D点云,深度图)的应用一览
  2. 算法训练 出现次数最多的整数
  3. ISE14.7兼容性问题集锦
  4. Oracle12081,【Oracle介质】Oracle 12C Linux x86-64 最新OPatch patch 6880880 12.2.0.1.7
  5. jtessboxeditorfx 界面显示不出来_不需要发酵,自制家庭版健康小油条,不会失败的配方...
  6. blob_buf,blobmsg内存图详解
  7. vsoce-video
  8. WindowsServer2003中Vmware虚拟机与物理机配置FTP文件共享
  9. Linux c学习--进程基础学习
  10. python中用于返回元组中元素最小值的是_第5章习题
  11. paip.python NameError name 'xxx' is not defined\
  12. Ubuntu WPS字体缺失
  13. C51单片机 SIM900A 手机给门禁解锁 智能家居 【C程序代码已开源,更新至Ver4.0】...
  14. oracle数据库查看归档日志文件,查看oracle归档日志路径
  15. 机器学习实验——分类学习算法
  16. 肖像转素描:AI小素的前世今生
  17. 华为小世界杯来了:从一棵树到一片森林的大赛
  18. GIS数据与CAD数据间带属性字段互相转换还原工具,解决ArcGIS等软件进行GIS数据转CAD数据无法保留属性字段问题
  19. 真人表述:一个技术支持人员的兼职创业实战案例
  20. Android开发系列——实战篇11:多线程与异步机制

热门文章

  1. 直播app开发搭建,纯css/html实现侧边导航栏
  2. 软件项目管理:教你如何做好团队管理
  3. 【pandas问题】UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 0: invalid continuati
  4. 非凡十年,且看临工重机的“数智化”之变!
  5. Weakly Guiding Fibers(弱导光纤)
  6. Shell 脚本 — 多行注释、开启子/不开启子进程执行、转义带颜色输出、读取键盘输入、输入输出重定向、单双引号、命令替换、读取变量、系统变量、正则过滤、算术运算、一行多条命令、字符串比较
  7. python循环队列_JS 队列-优先队列、循环队列
  8. UE4C++设置Actor与父Actor的相对位置和相对旋转
  9. 76位健康专家共荐防病36计
  10. 盘点2018云栖大会的黑科技