Springboot REST风格
REST简介
REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格
当我们想表示一个网络资源的时候,可以使用两种方式:
- 传统风格资源描述形式
http://localhost/user/getById?id=1
查询id为1的用户信息http://localhost/user/saveUser
保存用户信息
- REST风格描述形式
http://localhost/user/1
http://localhost/user
- 传统风格资源描述形式
传统方式一般是一个请求url对应一种操作,这样做不仅麻烦,也不安全,因为会程序的人读取了你的请求url地址,就大概知道该url实现的是一个什么样的操作。
查看REST风格的描述,你会发现请求地址变的简单了,并且光看请求URL并不是很能猜出来该URL的具体功能
所以REST的优点有:
- 隐藏资源的访问行为,无法通过地址得知对资源是何种操作
- 书写简化
但是我们的问题也随之而来了,一个相同的url地址即可以是新增也可以是修改或者查询,那么到底我们该如何区分该请求到底是什么操作呢?
- 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
http://localhost/users
查询全部用户信息 GET(查询)http://localhost/users/1
查询指定用户信息 GET(查询)http://localhost/users
添加用户信息 POST(新增/保存)http://localhost/users
修改用户信息 PUT(修改/更新)http://localhost/users/1
删除用户信息 DELETE(删除)
请求的方式比较多,但是比较常用的就4种,分别是GET
,POST
,PUT
,DELETE
。
按照不同的请求方式代表不同的操作类型。
- 发送GET请求是用来做查询
- 发送POST请求是用来做新增
- 发送PUT请求是用来做修改
- 发送DELETE请求是用来做删除
REST中规定GET/POST/PUT/DELETE针对的是查询/新增/修改/删除,但是我们如果非要用GET请求做删除,这点在程序上运行是可以实现的
根据REST风格对资源进行访问称为RESTful。
RESTful快速开发
@PathVariable
名称 | @PathVariable |
---|---|
类型 | 形参注解 |
位置 | SpringMVC控制器方法形参定义前面 |
作用 | 绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应 |
关于接收参数,我们学过三个注解@RequestBody
、@RequestParam
、@PathVariable
,这三个注解之间的区别和应用分别是什么?
- 区别
- @RequestParam用于接收url地址传参或表单传参
- @RequestBody用于接收json数据
- @PathVariable用于接收路径参数,使用{参数名称}描述路径参数
- 应用
- 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
- 如果发送非json格式数据,选用@RequestParam接收请求参数
- 采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值
@RestController
名称 | @RestController |
---|---|
类型 | 类注解 |
位置 | 基于SpringMVC的RESTful开发控制器类定义上方 |
作用 |
设置当前控制器类为RESTful风格, 等同于@Controller与@ResponseBody两个注解组合功能 |
@GetMapping @PostMapping @PutMapping @DeleteMapping
名称 | @GetMapping @PostMapping @PutMapping @DeleteMapping |
---|---|
类型 | 方法注解 |
位置 | 基于SpringMVC的RESTful开发控制器方法定义上方 |
作用 |
设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作, 例如@GetMapping对应GET请求 |
相关属性 | value(默认):请求访问路径 |
Springboot REST风格相关推荐
- SpringBoot RestFul风格API接口开发
本文介绍在使用springBoot如何进行Restful Api接口的开发及相关注解已经参数传递如何处理. 一.概念: REST全称是Representational State Transfer,中 ...
- SpringBoot RESTful 风格 API 多语言国际化i18n解决方案
文章目录 1 摘要 2 核心代码 2.1 多语言枚举类 2.2 多语言处理工具类 2.3 多语言的API返回状态码枚举类 2.4 多语言 API 接口返回结果封装 2.5 i18n 国际化多语言配置文 ...
- SpringBoot——REST风格
文章目录 一. REST风格 1. REST简介 二. 入门案例 1. 设定http请求动作(动词) 2. 设定请求参数(路径变量) 3. 总结 4. 三种参数的区别 三. RESTful快速开发 一 ...
- SpringBoot resultful风格返回格式
public class Msg<T> {/*错误码*/private Integer code;/*提示信息 */private String msg;/*具体内容*/private T ...
- Vue.js + Restful + PageHelper + Thymeleaf + Springboot 前后端分离 增删改查 CRUD 教程
更多内容,点击了解: https://how2j.cn/k/springboot/springboot-vue/1788.html 目录 步骤 1 : 教程说明 步骤 2 : 数据库准备 步骤 3 : ...
- 转换实体类_yue-library 2.3.0发布,替换Db JavaBean转换方案,性能提升约300%+
yue-library简介 yue-library是一个基于SpringBoot封装的增强库 内置丰富的JDK工具 自动装配了一系列的基础Bean与环境配置项 快速构建SpringCloud项目,让微 ...
- SpringCloud 超详细个人笔记
文章目录 SpringCloud 1.常见面试题 2.微服务概述 2.1.什么是微服务 2.2.微服务和微服务架构 2.3.微服务优缺点 2.4.微服务技术栈有哪些? 2.5.为什么选择SpringC ...
- oracle脚本导入mysql数据库_oracle脚本导入mysql数据库
关于 oracle脚本导入mysql数据库的搜索结果 问题 如何将一个mysql 风格的 sql 脚本转换为 oracle 导入的 sql 脚本 - 数据库报错 如何将一个 mysql 风格的 sql ...
- html用bmob做留言,Bmob 之 简单使用
1. pod pod 'BmobSDK' 与 pod "BmobSDK" 好像没什么区别 2. 导入 在AppDelegate中: #import [Bmob registerWi ...
最新文章
- 欧拉角推算旋转矩阵的问题
- vue处理json数据的原理_Vue解析json数据的渲染
- android 多个textview,Android:多个textview像单个文本
- 微信小程序 drawImage 问题
- spring aop实例讲解_【好好面试】手把手调试,教你分析Spring-Aop
- ERROR: Could not install Gradle distribution from ‘https://services.gradle.org/distributions/gradle
- ast java_一种基于AST的Java代码SSA单路径的生成方法技术
- 基于html的美食网站——速鲜站餐饮食品(HTML+CSS+JavaScript)大学生网页制作教程 表格布局网页模板 学生HTML静态美食网页设计作业成品 简单网页制作代码 学生美食网页作品
- PS滤镜-Topaz Photoshop Plugins Bundle
- 基于 NIOSII 软核的流水灯实验
- 在VS中一个项目下两个以上源文件怎么通过编译
- Element组件--Upload文件/图片上传
- 数据连接池contect.xml配置
- 企业微信后台应用配置步骤
- python爬去虎扑数据信息,完成可视化
- Zynq实现分布式Fir滤波器
- 常见企业IT支撑【5、内网DNS cache轻量服务dnsmasq】
- Xilinx 功耗分析
- 蘑菇街java,猎聘邀请蘑菇街觉知分享Java异步化与高性能网络应用
- 大数据分析在病毒疫苗研究中的应用
热门文章
- 分布式系统治理-边车模式 sidecar
- 在线测试MP4视频地址
- android终端模拟器 yum,分享|Terminix:一个很赞的基于 GTK3 的平铺式 Linux 终端模拟器...
- Flume系列:Flume Sink使用
- Runtime 隐藏Status Bar背景
- Linux几个版本下创建桌面快捷方式、开始菜单快捷方式、文件管理器右键菜单(只deepin uos 20)
- 视屏消音工具,支持指定词语,或者短句消音
- 感谢女主播!挺进50亿美元俱乐部之后陌陌路在何方?
- 目标检测——R-CNN网络基础
- 啊哈添柴挑战Java1012. 打印字符