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. [OS] 计算机资源虚拟化技术

    1 定义:计算机资源虚拟化 服务器虚拟化主要通过软件技术将物理服务器的硬件资源抽象化,创建多个独立的虚拟服务器环境. 2 虚拟化技术方向 以下是一些常见的服务器虚拟化方式和工具: 基于hypervis ...

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

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

  3. IOS网络状态变化监听

    IOS网络状态变化监听 使用Alamofire库的NetworkReachabilityManager 一共有三种状态 /// It is unknown whether the network is ...

  4. Shadow DOM 及 Custom Elements

    今天发现 shadow DOM 和 自定义元素,这两个东西和 molecule 简直是同出而异名. 我得好好推敲一下,如果 shadow dom 确实能达到目的且新款浏览器都支持,molecule 就 ...

  5. 【Go进阶】手写 Go websocket 库(一)|WebSocket 通信协议

    前言 这里是白泽,我将利用一个系列,为你分享如何基于 websocket 协议的 rfc 文档,编写一个库的过程.并从0开始写一遍 gorilla/websocket 这个库,从中你可以学习到 web ...

  6. 一打开终端就默认进入conda的base环境,取消方法

    conda版本:4.10.3 安装conda之后,在使用VSCode的时候,每次在里面使用powershell终端都是默认进入base环境,稍不注意就会用错python解释器,所以考虑取消这一设置.经 ...

  7. 基于Three.js的大屏3D地图(一)

    依赖安装 yarn add three yarn add @types/three yarn add d3-geo three库安装后在node_modules下其还包含核心three/src和插件t ...

  8. Qt编写本地摄像头综合应用示例(qcamera/ffmpeg/v4l2等)

    一.功能特点 同时支持 qcamera.ffmpeg.v4l2 三种内核解析本地摄像头. 提供函数 findCamera 自动搜索环境中的所有本地摄像头设备,搜索结果信号发出. 支持自动搜索和指定设备 ...

  9. Sqlsugar 跨库查询小心得(同服务器不同数据库)

    同一个服务器下的不同数据库,目前还没有进行跨服务器的查询,以后有待研究-- 1.使用的是Left Join左查询,因此连接字符串应该是写的第一个表所在的数据库的连接字符串 假设数据库A,B,连接字符串 ...

  10. 计算机视觉中由基本矩阵F或者本质矩阵E计算摄像机投影矩阵时,经常提到“相差一个尺度因子”的含义

    在通过二维像素坐标恢复三维坐标的过程中,经常出现这个齐次坐标系.尺度不变性的概念.这篇博客讲的比较好. 一.关于齐次坐标系的直观感受 在我们的世界里,两平行线是永远不会相交的,但是在投影空间里,两条平 ...