简单理解REST风格
REST风格
REST 是一种软件架构风格,其本身是围绕HTTP的URI资源进行约束。
- URI 中不能有动词,因为 URI 本身是资源的表示,所以网址中不能有动词,只能由名词,动词由 HTTP 协议中的操作:GET、POSE、PUT、DELETE 四种方法表示。
- 如果有自定以的状态码,由于 REST 本身是根据 HTTP 协议进行规范的,所以尽量使用 HTTP 协议的状态码。
- 200:OK 请求响应成功,服务器返回数据,该操作是幂等的
- 201:CREATED 新建或者修改数据成功
- 204:NOT CONTENT 删除数据成功
- 400:BAD REQUEST 用户发出的请求有问题,该操作是幂等的
- 401:Unauthoried 表示用户没有认证,无法进行操作
- 403:Forbidden 用户访问是被禁止的
- 404:Not Found 请求资源不存在
- 422:Unprocesable Entity 当创建一个对象时,发生一个验证错误
- 500:INTERNAL SERVER ERROR 服务器内部错误,用户无法判断请求是否成功
- 503:Service Unavailable 服务器不可用状态,多半是服务器问题,例如CPU占用率打等。
风格差别:
普通写法:http://localhost:6666/项目名/product/load?id=12345
REST风格:http://localhost:6666/项目名/product/load/12345
REST风格的使用:
@RequestMapping(value="/{id}" RequestMethod="Get")
public String getId(@PathVariable("id") Integer id){System.out.println("id");return "XXX";
}
springboot下REST风格:
springboot 中将属性 RequestMethod 与 Mapping 整合起来形成新的标签,简化使用
@GetMapping(value="/{id}")
public String getId(@PathVariable("id") Integer id){System.out.println("id");return "XXX";
}
RESTCURD:
普通CRUD | RestfulCRUD | 操作 | |
---|---|---|---|
查询 | getEmp | emp----GET | 获取资源 |
添加 | addEmp?xxx | emp----POST | 新建资源 |
修改 | updateEmp?id=xxx&xxx=xx | emp/{id}----PUT | 更新资源(向服务器提供需要改变的资源的所有信息) |
删除 | deleteEmp?id=1 | emp/{id}----DELETE | 删除资源 |
简单理解REST风格相关推荐
- 简单理解Pix2Pix
论文名:Image-to-Image Translation with Conditional Adversarial Networks 论文地址:https://arxiv.org/abs/1611 ...
- 互联网协议-简单理解和介绍
概念:互联网实现过程中大家都需要遵循的准则,我们称之为协议. 前提概要: 我们知道当我们访问互联网是,是在浏览器的导航栏输入一个网址,http://www.baidu.com/ 而一个网址对应的是一个 ...
- restapi是什么意思_简单理解什么是REST和RESTful
简单理解一 就是用URL定位资源,用HTTP描述操作. 简单理解二 URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作. 官方定义 一种软件架构风格.设计风格,而不是标 ...
- 简单介绍RESTful风格
文章目录 前言 一.RESTful风格是什么? 二.搭建环境: 1. get.html 2. post.html 3. Controller.java 三.@PathVariable简单介绍 前言 学 ...
- 【深度学习入门基础】二、简单理解 Transformer
[深度学习入门基础]二.简单理解 Transformer 文章目录 [深度学习入门基础]二.简单理解 Transformer 自注意力层 多头注意力 Transformer 输入(输出)嵌入 位置编码 ...
- android 点击事件消费,Android View事件分发和消费源码简单理解
Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...
- 【转载】Deep learning:十九(RBM简单理解)
Deep learning:十九(RBM简单理解) 这篇博客主要用来简单介绍下RBM网络,因为deep learning中的一个重要网络结构DBN就可以由RBM网络叠加而成,所以对RBM的理解有利于我 ...
- 学习:双机热备、集群、负载均衡、SQL故障转移群集简单理解(转)
双机热备.集群.负载均衡.SQL故障转移群集简单理解平常,大家常提到几个技术名词:双机热备.集群.负载均衡.SQL故障转移群集.这里,就我的理解,和大家简单探讨下,有不足或错误之处还请各位指出! 这些 ...
- 字符串匹配算法Java_如何简单理解字符串匹配算法?
这篇文章来说说如何简单理解KMP,BM算法.之前看过一些文章说,KMP算法很难理解. 可我并不觉得. 我反而觉得它容易理解.平时我们写java代码的时候, 判断一个字符串是否存在包含另一个字符串都是直 ...
最新文章
- 【Spring Web MVC】Spring Web MVC 注解开发环境搭建
- Oracle PLSQL 导出数据table xx contains one or more CLOB columns 解决方案
- webservice客户端开发
- 动手实现Kotlin协程同步切换线程,以及Kotlin协程是如何实现线程切换的
- HTML中的列表和表格
- 【转】如何设计动态(不定)字段的产品数据库表?
- [C++调试笔记]求电势posi.cpp
- mybatis学习(2):基本设置和核心配置
- 在拦截器里放入参数 controller_程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路...
- JAVA day08 接口(interface),多态,instanceof
- day③:函数式编程
- 解析服务器响应的xml数据包,解析XML/JSON数据
- 【Love2d从青铜到王者】第十一篇:Love2d之图像(Images)
- 前端学习路线(详细)
- 微信小程序时间轴demo_微信小程序时间轴实现方法示例
- 程序员值得关注的微信公众号
- Python认证现已生效,并且其他freeCodeCamp 7.0版课程更新
- 谷歌浏览器获取摄像头
- kali利用MSF对ms17_010漏洞入侵win7
- 支付宝芝麻分701,花呗借呗额度提升明显,网友:三年没涨一分