什么是Restfull API

Restfull API 从字面就可以知道,他是rest式的接口,所以就要先了解什么是rest

rest 不是一个技术,也不是一个协议

rest 指的是一组架构约束条件和原则,提供了一个新的架构设计思路,满足这些约束条件和原则的应用程序或设计就是 RESTful

在REST规则中,有两个基础概念:对象、行为

对象就是我们要操作的对象,例如添加用户的操作,那么对象就是user

行为有4种常用的:查看、创建、编辑、删除

rest的提出者很巧妙的利用http现有方法来对应这4种行为:

GET - 查看
POST - 创建
PUT - 编辑
DELETE - 删除

为什么用Restfull API

例如常用的MVC结构中,前后端的融合还是比较紧密的,用户访问一个网址,例如 http://test.com/a.php,请求先发送到动态php处理,php中处理逻辑,然后使用页面模板来输出显示给用户

以前用户主要就是用浏览器访问,这样的结构没什么问题,但现在移动客户端越来越重要,显然不能使用这个结构,需要为移动客户端开发接口

RESTful API 就可以通过一套统一的接口为所有客户端提供web服务,实现前后端分离

再比如在一个大型系统中,可能是多种开发语言一起工作,使用 RESTful API 就可以完全不关心开发语言,以标准的接口来协同工作

Restfull API是怎么定义的

下面通过几个示例了解下Restfull API的定义方式

(1)查看所有任务

GET http://test.com/tasks

(2)新建一个任务

POST http://test.com/tasks

Data: title = Foobar

(3)根据ID查看一个任务

GET http://test.com/tasks/123

(4)更新任务

PUT http://test.com/tasks/123

Data: title = New

(5)删除任务

DELETE http://test.com/tasks/123

可以看到Restfull API的风格非常简洁、统一、明确

例如查看操作,用普通方式的话,定义方式是任意的,如:

http://test.com/listall_tasks

'listall_tasks' 就是随意定义的,通过这个名字才可以看出是查看全部的意思,如果开发人员用了一个没有明确意义的名字,那就需要看文档或者代码才能知道含义了

而Restfull API 通过 GET 方法就知道是查看操作,通过tasks就知道查看的对象是什么

https://blog.csdn.net/u013063153/article/details/72811976

https://www.cnblogs.com/chinajava/p/5871310.html

转载于:https://www.cnblogs.com/hmy-1365/p/9101465.html

resultAPI示例相关推荐

  1. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  2. CPU Cache原理与示例

    CPU Cache原理与示例 基础知识 现在的 CPU 多核技术,都会有几级缓存,老的 CPU 会有两级内存(L1 和 L2),新的CPU会有三级内存(L1,L2,L3 ),如下图所示: 其中:  ...

  3. 编译器 llvm clang 源码转换示例

    编译器 llvm clang 源码转换示例 从git获取llvm项目的源码方式: git clone https://github.com/llvm/llvm-project.git 下载源码后,进入 ...

  4. Cache Memory技术示例

    Cache Memory技术示例 为什么需要cache?如何判断一个数据在cache中是否命中?cache的种类有哪些,区别是什么? 为什么需要cache memory 先思考第一个问题:程序是如何运 ...

  5. Swift与LLVM-Clang原理与示例

    Swift与LLVM-Clang原理与示例 LLVM 学习 从 简单汇编基础 到 Swift 不简单的 a + 1 作为iOS开发,程序崩溃犹如家常便饭,秉着没有崩溃也要制造崩溃的原则 每天都吃的很饱 ...

  6. C语言与OpenCL的编程示例比较

    C语言与OpenCL的编程示例比较 OpenCL支持数据并行,任务并行编程,同时支持两种模式的混合.对于同步 OpenCL支持同一工作组内工作项的同步和命令队列中处于同一个上下文中的 命令的同步. 在 ...

  7. OpenCL框架与示例

    OpenCL框架与示例 下面的图简单说明了OpenCL的编程框架,图是用的GPU,其他类似: 名词的概念: Platform (平台):主机加上OpenCL框架管理下的若干设备构成了这个平台,通过这个 ...

  8. ONNX MLIR应用示例(含源码链接)

    ONNX MLIR应用示例(含源码链接) 开放式神经网络交换在MLIR中的实现 (http://onnx.ai/onnx-mlir/). Prebuilt Containers 开始使用ONNX-ML ...

  9. TVM apps extension示例扩展库

    TVM apps extension示例扩展库 此文件夹包含TVM的示例扩展库.演示了其它库如何在C++和Python API中扩展TVM. 该库扩展了TVM的功能. python模块加载新的共享库, ...

最新文章

  1. 腾讯SaaS生态战略再升级,“一云多端”助力企业数字化转型
  2. 计算机机房消防安全工作应急预案
  3. C#中怎样连接数据库并将查询结果转为实体类以及如何加入事务
  4. skynet 报错 skynet 服务缺陷 Lua死循环
  5. Palo Doris不会用?(基础指南)
  6. 667. Beautiful Arrangement II
  7. 北京理工大学珠海学院专业计算机类,北京理工大学珠海学院计算机学院网络工程专业...
  8. (王道考研计算机网络)第一章计算机网络体系结构-第二节体系结构与参考模型2:ISO/OSI模型
  9. adobe FMS(flash media server)错误解决小结
  10. 如何确定地址_小规模公司注册地址 创业者该如何选择
  11. 526个儿童游戏APP应用音效游戏声音集合音效素材 Kids Game Sound Effects
  12. ps教程|photoshop入门教程|ps高阶段精通教程附百度云资源
  13. 计算机毕业设计java+jsp报刊订阅信息网站(源码+系统+mysql数据库+Lw文档)
  14. java GIF拆分和压缩处理
  15. (转)熊绎:我看软件工程师的职业规划
  16. python爬虫实训心得_python实训心得体会
  17. stratch pragramming
  18. 微信小程序入门开发教程(详解)
  19. 人活着就是在对抗熵增 | 熵增启示录
  20. tkinter绘制组件(18)——菜单

热门文章

  1. Android 完整漂亮问卷、试卷 -- 支持单选、判断、不定项
  2. java 密码规则_密码规则(正则表达式)
  3. python前后两个下划线_Python中一个下划线_和两个下划线__的区别
  4. Android 音频开发(三) 如何播放一帧音频数据上
  5. HTML 和 JavaScript 编程
  6. mysql rpm包_自制mysql.rpm安装包
  7. git 使用分支基础
  8. 目标追踪-背景差算法
  9. 在python中、如果异常并未被处理或捕捉_7、Python-异常
  10. php扩展调用php函数,是否可以在PHP字符串中扩展函数调用?