GetMappingPostMappingDeleteMappingPutMapping是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风格接口方法&参数的更多相关文章

  1. 使用SpringBoot编写Restful风格接口

    一.简介    Restful是一种对url进行规范的编码风格,通常一个网址对应一个资源,访问形式类似http://xxx.com/xx/{id}/{id}. 举个栗子,当我们在某购物网站上买手机时会 ...

  2. SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口

    一.SpringBoot 框架的特点 1.SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容 ...

  3. SpringBoot之RESTful风格

    SpringBoot之RESTful风格 1.RESTful介绍 RESTful是一种软件架构风格,一种时尚! RESTful架构风格规定,数据的元操作,即CRUD(create, read, upd ...

  4. 『政善治』Postman工具 — 3、补充:restful风格接口的项目说明

    目录 (一)RESTful架构风格特点 1.统一接口风格 2.规范的HTTP请求方法 3.HTTP响应码 4.什么是无状态 (二)JSON数据格式说明 1.什么是JSON 2.JSON格式的特点 3. ...

  5. 第一节:WebApi的纯原生态的RestFul风格接口和路由规则介绍

    一. 原生态接口 1. 从默认路由开始分析 在WebApiConfig.cs类中的Register方法中,我们可以看到默认路由如下: 分析:请求地址在 controller 前面需要加上 api/,c ...

  6. java框架之SpringBoot(6)-Restful风格的CRUD示例

    准备 环境 IDE:Idea SpringBoot版本:1.5.19 UI:BootStrap 4 模板引擎:thymeleaf 3 效果:Restful 风格 CRUD 功能的 Demo 依赖 &l ...

  7. thinkphp5.0极速搭建restful风格接口层实例

    作为国内最流行的php框架thinkphp,很快就会发布v5.0正式版了,现在还是rc4版本,但已经很强大了下面是基于ThinkPHP V5.0 RC4框架,以restful风格完成的新闻查询(get ...

  8. restful风格接口和spring的运用

    Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机 ...

  9. Restful风格接口浅析

    为什么使用RESTful1.JSP技术可以让我们在页面中嵌入Java代码,但是这样的技术实际上限制了我们的开发效率,因为需要我们Java工程师将html转换为jsp页面,并写一些脚本代码,或者前端代码 ...

  10. 【Spring】构建Springboot项目 实现restful风格接口

    项目代码如下: package hello; import org.springframework.boot.SpringApplication; import org.springframework ...

随机推荐

  1. HarmonyOS鸿蒙开发 - 解决上下两栏白边 - 沉浸式效果

    鸿蒙应用开发从入门到入行 预览器上下两栏白边 自从HarmonyOS升级到release版后,很多同学会问猫林老师:为什么他的预览器上下有白边,为什么明明根容器写了宽高百分百但没铺满.如下图 白边原因 ...

  2. 【C#】【平时作业】习题-4-流程控制

    T1 创建一个Windows应用程序,先输入年龄值,再判断是否大于18,最后显示判断结果,运行效果如图所示. 提示: 注意保持逻辑完整: 引用数据需要明确出处. [程序代码] private void ...

  3. pip 安装 Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)'))

    1.问题 1.1 问题截取 pip install redis -i https://pypi.tuna.tsinghua.edu.cn/simple Looking in indexes: http ...

  4. 【杂谈】Kafka的无锁设计

    前言 在分布式消息队列系统中,Kafka 的无锁设计是其高吞吐量和高并发的核心优势之一.通过避免锁的竞争,Kafka 能够在高并发和大规模的生产环境中保持高效的性能.为了更好地理解 Kafka 的无锁 ...

  5. 解决phpmyadmin导入MYSQL数据库限制大小为50M的问题

    有时候想导入的数据库太大.但是遭到的限制 解决phpmyadmin导入MYSQL数据库限制大小为50M的问题 转载于:https://www.cnblogs.com/wesky/p/10609340. ...

  6. 零门槛的向量数据库「GitHub 热点速览」

    上周,DeepSeek-V3 将训练大模型的成本给打下来了,但训练大模型对普通开发者来说仍然门槛很高.所以,本期的热门开源项目聚焦于降低 LLM 应用开发的入门门槛. 极易上手的向量数据库 chrom ...

  7. 一种调试 线段树 / Treap / Splay / 左偏树 / LCT 等树形结构的技巧

    前言 如果我们需要观察程序运行过程中,某一个变量.某一个序列的变化情况,你可以在修改的地方打断点 debug,或者直接在需要的地方输出就行了. 但是对于一些树形结构,我们不好将其直观地呈现出来,常常只 ...

  8. jwt-shiro-springsecurity-oauth2对比

    1 实现token的方式概述 在cookie\session\token辨析一文已经知道了token这个概念,里面简单说明了token的组成就是数据+签名,给出了token实现身份验证的流程,并且详细 ...

  9. ed25519加密签名算法及应用

    刷知乎时看到一篇文章,很感兴趣,来学习一下! 转载文章:ed25519加密签名算法及应用 初次使用Github时都需上传本地的公钥,这时需要提前在本地生成密钥对,使用的是ssh-keygen命令: s ...

  10. Gitblit 服务器IP变更

    当Gitblit服务器的IP地址发生变化时,只需将项目中 ./git/config 文件中的 url改为新的IP即可.