SpringBoot - [09] Restful风格接口方法&参数
GetMapping、PostMapping、DeleteMapping、PutMapping是SpringBoot中常用的HTTP请求映射注解,它们分别对应HTTP协议中的GET、POST、DELETE和PUT方法。
一、方法
001 || GetMapping
区别:用于处理HTTP GET请求,请求参数会绑定到方法参数上,通常用于获取数据。
使用场景:如查询用户信息、获取商品列表等。
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id){
// 根据id查询用户信息
}
002 || PostMapping
区别:用于处理HTTP POST请求,请求参数会绑定到方法参数上,通常用于创建新对象或执行特定操作。
使用场景:如注册新用户、创建新订单等。
@PostMapping("/users")
public User createUser(@RequestBody User user){
// 创建新用户
}
003 || DeleteMapping
区别:用于处理HTTP DELETE请求,通常用于删除对象。
使用场景:如删除用户、删除订单等。
@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable Long id){
// 创建新用户
}
004 || PutMapping
区别:用于处理HTTP PUT请求,通常用于更新对象。
使用场景:如更新用户信息、更新订单状态等。
@PutMapping("/users/{id}")
public User updateUser(@PathVariable Long id,@RequestBody User user){
// 根据id更新用户信息
}
二、参数
001 || 路径变量(@PathVariable)
使用场景:当需要从URL中获取特定部分的值来确定操作对象时使用。例如,根据用户id查询用户信息时,用户id时从URL路径中获取的。
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id){
// 根据id查询用户信息,这里的id就是从URL 如/users/123中的123获取并转换为Long类型
}
002 || 请求体参数(@RequestBody)
使用场景:当发送的数据是复杂的对象结构,并且是通过HTTP请求的主题(body)发送时使用。比如创建或更新一个包含多个属性的用户对象。
@PostMapping("/users")
public User createUser(@RequestBody User user){
// 这里的user对象是从请求体中获取并转换为User类型的,例如发送JSON格式的用户数据
}
003 || 查询参数(@RequestParam)
使用场景:当需要从URL的查询字符串中获取简单的参数值时使用。例如,在查询用户列表时,可能需要根据年龄范围或者用户名模糊查询等条件。
@GetMapping("/users")
public List<User> getUsers(@RequestParam(required = false) String name,
@RequestParam(defaultValue = "0") int ageStart,
@RequestParam(defaultValue = "100") int ageEnd){
// 根据name, ageStart和ageEnd查询用户列表, name是可选的,ageStart默认0,ageEnd默认100
}
004 || 请求头参数(@RequestHeader)
使用场景:当需要根据客户端发送的请求头中的信息来执行操作时使用。例如,根据客户端设置的特定版本号来返回不同版本的资源。
@GetMapping("/data")
public Data getData(@RequestHeader("Version") String version){
// 根据请求头中的Version值来获取对应的数据版本
}
005 || Cookie参数(@CookieValue)
使用场景:当需要根据客户端发送的Cookie中的值来执行操作时使用。比如验证用户登录状态,从特定的登录Cookie中获取用户标识。
@GetMapping("/profile")
public UserProfile getProfile(@CookieValue("sessionId") String sessionId){
// 根据sessionId(来自Cookie)获取用户资料
}
SpringBoot - [09] Restful风格接口方法&参数的更多相关文章
- 使用SpringBoot编写Restful风格接口
一.简介 Restful是一种对url进行规范的编码风格,通常一个网址对应一个资源,访问形式类似http://xxx.com/xx/{id}/{id}. 举个栗子,当我们在某购物网站上买手机时会 ...
- SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
一.SpringBoot 框架的特点 1.SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容 ...
- SpringBoot之RESTful风格
SpringBoot之RESTful风格 1.RESTful介绍 RESTful是一种软件架构风格,一种时尚! RESTful架构风格规定,数据的元操作,即CRUD(create, read, upd ...
- 『政善治』Postman工具 — 3、补充:restful风格接口的项目说明
目录 (一)RESTful架构风格特点 1.统一接口风格 2.规范的HTTP请求方法 3.HTTP响应码 4.什么是无状态 (二)JSON数据格式说明 1.什么是JSON 2.JSON格式的特点 3. ...
- 第一节:WebApi的纯原生态的RestFul风格接口和路由规则介绍
一. 原生态接口 1. 从默认路由开始分析 在WebApiConfig.cs类中的Register方法中,我们可以看到默认路由如下: 分析:请求地址在 controller 前面需要加上 api/,c ...
- java框架之SpringBoot(6)-Restful风格的CRUD示例
准备 环境 IDE:Idea SpringBoot版本:1.5.19 UI:BootStrap 4 模板引擎:thymeleaf 3 效果:Restful 风格 CRUD 功能的 Demo 依赖 &l ...
- thinkphp5.0极速搭建restful风格接口层实例
作为国内最流行的php框架thinkphp,很快就会发布v5.0正式版了,现在还是rc4版本,但已经很强大了下面是基于ThinkPHP V5.0 RC4框架,以restful风格完成的新闻查询(get ...
- restful风格接口和spring的运用
Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机 ...
- Restful风格接口浅析
为什么使用RESTful1.JSP技术可以让我们在页面中嵌入Java代码,但是这样的技术实际上限制了我们的开发效率,因为需要我们Java工程师将html转换为jsp页面,并写一些脚本代码,或者前端代码 ...
- 【Spring】构建Springboot项目 实现restful风格接口
项目代码如下: package hello; import org.springframework.boot.SpringApplication; import org.springframework ...
随机推荐
- [OS] 计算机资源虚拟化技术
1 定义:计算机资源虚拟化 服务器虚拟化主要通过软件技术将物理服务器的硬件资源抽象化,创建多个独立的虚拟服务器环境. 2 虚拟化技术方向 以下是一些常见的服务器虚拟化方式和工具: 基于hypervis ...
- HarmonyOS鸿蒙开发 - 解决上下两栏白边 - 沉浸式效果
鸿蒙应用开发从入门到入行 预览器上下两栏白边 自从HarmonyOS升级到release版后,很多同学会问猫林老师:为什么他的预览器上下有白边,为什么明明根容器写了宽高百分百但没铺满.如下图 白边原因 ...
- IOS网络状态变化监听
IOS网络状态变化监听 使用Alamofire库的NetworkReachabilityManager 一共有三种状态 /// It is unknown whether the network is ...
- Shadow DOM 及 Custom Elements
今天发现 shadow DOM 和 自定义元素,这两个东西和 molecule 简直是同出而异名. 我得好好推敲一下,如果 shadow dom 确实能达到目的且新款浏览器都支持,molecule 就 ...
- 【Go进阶】手写 Go websocket 库(一)|WebSocket 通信协议
前言 这里是白泽,我将利用一个系列,为你分享如何基于 websocket 协议的 rfc 文档,编写一个库的过程.并从0开始写一遍 gorilla/websocket 这个库,从中你可以学习到 web ...
- 一打开终端就默认进入conda的base环境,取消方法
conda版本:4.10.3 安装conda之后,在使用VSCode的时候,每次在里面使用powershell终端都是默认进入base环境,稍不注意就会用错python解释器,所以考虑取消这一设置.经 ...
- 基于Three.js的大屏3D地图(一)
依赖安装 yarn add three yarn add @types/three yarn add d3-geo three库安装后在node_modules下其还包含核心three/src和插件t ...
- Qt编写本地摄像头综合应用示例(qcamera/ffmpeg/v4l2等)
一.功能特点 同时支持 qcamera.ffmpeg.v4l2 三种内核解析本地摄像头. 提供函数 findCamera 自动搜索环境中的所有本地摄像头设备,搜索结果信号发出. 支持自动搜索和指定设备 ...
- Sqlsugar 跨库查询小心得(同服务器不同数据库)
同一个服务器下的不同数据库,目前还没有进行跨服务器的查询,以后有待研究-- 1.使用的是Left Join左查询,因此连接字符串应该是写的第一个表所在的数据库的连接字符串 假设数据库A,B,连接字符串 ...
- 计算机视觉中由基本矩阵F或者本质矩阵E计算摄像机投影矩阵时,经常提到“相差一个尺度因子”的含义
在通过二维像素坐标恢复三维坐标的过程中,经常出现这个齐次坐标系.尺度不变性的概念.这篇博客讲的比较好. 一.关于齐次坐标系的直观感受 在我们的世界里,两平行线是永远不会相交的,但是在投影空间里,两条平 ...