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 ...
随机推荐
- 【软件配置】使用 brew 安装特定版本软件
目录 使用 brew 安装特定版本软件 背景 方法一:直接安装 方法二:利用历史的 rb 文件安装 参考资料 使用 brew 安装特定版本软件 背景 brew 是 Mac 下非常好用的包管理工具,可以 ...
- 注册美区 Apple ID 账号!都2020年了,你还没有一个自己的海外苹果ID?
写在前面: 小伙伴们学腻了技术,不防今天来点大家都感兴趣的海外苹果 Apple ID 吧! 今天就教大家怎么注册美区 Apple ID,这个方法也是目前注册苹果美区 Apple ID 最快最简单的 ...
- PDFSharp - Graphics 绘制接口
PDFSharp - Graphics Graphics - PDFsharp and MigraDoc Wiki 所有的 Graphics 类型都设计成模仿来自 System.Drawing 命名空 ...
- 中电金信:技术实践|Flink多线程实现异构集群的动态负载均衡
导语:Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算.本文主要从实际案例入手并结合作者的实践经验,向各位读者分享当应用场景中异构集群无法做到负载均衡时,如何通 ...
- Mac netstat 查看端口报错 netstat: option requires an argument -- p 解决
netstat -anvp |grep 10001 查询端口的时候报错提示 意思是缺少协议. 解决方案在Mac上正确使用的方法是:即-f需要加上地址族,-p需要加上协议TCP或者UDP等 a)如果需要 ...
- Qt音视频开发43-采集屏幕桌面并推流(支持分辨率/矩形区域/帧率等设置/实时性极高)
一.前言 采集电脑屏幕桌面并推流一般是用来做共享桌面.远程协助.投屏之类的应用,最简单入门的做法可能会采用开个定时器或者线程抓图,将整个屏幕截图下来,然后将图片传出去,这种方式很简单但是性能要低不少, ...
- MySql中的driverClassName、url
在Java桌面开发或者Java Web开发(基于SSM框架)配置MySQL数据源时,driverClassName属性如果填错了,会导致了这一系列错误.归结其原因就是 mysql-connector- ...
- [转]IDEA2020.2.3中创建JavaWeb工程的完整步骤记录
原文链接: IDEA2020.2.3中创建JavaWeb工程的完整步骤记录
- P1437 敲砖块 题解
题意 在一个凹槽中放置了 \(n\) 层砖块.最上面的一层有 \(n\) 块砖,从上到下每层依次减少一块砖.每块砖都有一个分值,敲掉这块砖就能得到相应的分值,如下图所示: 14 15 4 3 23 3 ...
- docker和主机之间文件传输
docker和主机之间文件传输 1.从docker内部向主机传输文件 语法: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- 示例:将容器96f7 ...