Rest风格基本语法与实战

1,前置知识点

1.1 @GetMapping,@PostMapping,@PutMapping,@DeleteMapping

平时我们都是使用@RequestMapping,然后通过它的method属性来指定请求的方式,这样是有些麻烦的,然后这四个标签就是来简化这一点的,具体如下,
@GetMapping = @RequestMapping(method = RequestMethod.GET)
@PostMapping = @RequestMapping(method = RequestMethod.POST)
@PutMapping = @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)

1.2 @PathVariable

@PathVariable是Spring MVC中的注解,用于从URL路径中提取变量值并将其绑定到方法参数上。它通常与@RequestMapping一起使用。
使用@PathVariable注解可以方便地获取REST风格URL路径中的变量值,并将其作为方法参数使用。
@GetMapping("/{id}")public String getById(@PathVariable Integer id){System.out.println("book query ..." + id );return "{'module':'book query'}";}

在getUserById方法上,我们使用@GetMapping(“/{id}”)将方法与URL路径/books/{id}进行映射。{id}表示一个占位符,它对应URL路径中的实际值。
然后,我们在方法参数上使用@PathVariable注解,将id参数与URL路径中的实际值进行绑定。Spring MVC会自动提取URL路径中的相应部分,并将其作为参数传递给getUserById方法。
例如,当客户端发送GET请求到/books/1时,Spring MVC将提取URL中的1作为id参数的值,并将其传递给getById方法。在方法内部,我们可以使用id来执行相应的逻辑操作,比如根据用户ID查询用户信息。

1.3 按照REST风格访问资源时,使用行为动作区分对资源进行了何种操作

http://localhost:8080/books			查询所有图书信息   GET(查询)
http://localhost:8080/books/1			查询指定图书信息	GET(查询)
http://localhost:8080/books			添加图书信息	POST(新增/保存)
http://127.0.0.1:8080/books	修改用户信息	PUT(修改/更新)
http://localhost:8080/books/1	删除用户信息	DELETE(删除)

2,代码演示

controller类

package com.hkd.controller;import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/books")
public class BookController {@GetMappingpublic String query(){System.out.println("book query..." );return "{'module':'book query'}";}@PostMappingpublic String save(){System.out.println("book save..." );return "{'module':'book save'}";}@PutMappingpublic String update(){System.out.println("book update..." );return "{'module':'book update'}";}@DeleteMapping("/{id}")public String update(@PathVariable Integer id){System.out.println("book delete ..." + id );return "{'module':'book delete'}";}@GetMapping("/{id}")public String getById(@PathVariable Integer id){System.out.println("book query ..." + id );return "{'module':'book query'}";}
}
使用postman测试

在这里插入图片描述

以查询所有和删除为例演示

查询所有

在这里插入图片描述
在这里插入图片描述

删除图书

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL安装『适用于 CentOS 7』

✨个人主页: 北 海 🎉所属专栏: MySQL 学习 🎃操作环境: CentOS 7.6 腾讯云远程服务器 🎁软件版本: MySQL 5.7.44 文章目录 1.MySQL 的清理与安装1.1查看是否存在 MySQL 服务1.2.卸载原有服务1.…

JS逆向基础之反调试

JS逆向基础之反调试 截至目前的话大家应该都知道我们在进行js逆向的时候需要打开浏览器开发者工具进行网页的调试,但是在有时候网站会阻止我们去调试它的代码,而其阻止我们的手段也是多种多样的。接下来我们就来简单了解一下逆向过程中常见的反调试手段…

文件下载漏洞, 漏洞原理, 测试方法, 漏洞防御, 常见敏感路径

文件下载漏洞 一, 文件下载漏洞原理 利用条件: 1. 读取文件的路径是用户可控, 且没有校验或检验不严. 2. 使用了读取文件的函数. 3. 输出了文件内容.漏洞场景一: 后端没有限制哪些路径的文件可以下载 后端代码: http://192.168.112.200/security/download.php $file_pat…

keealived安装配置启动

1.keepalived作用和原理图 keepalived作用:解决单点故障简单原理图1: 2.keepalived安装配置启动 地址: https://www.keepalived.org/download.html# 1)解压 tar -zxvf keepalived-2.0.18.tar.gz # 2)进入keepalived目录 cd keepalived-2.0.18/ # 3)安装libnl/libnl-3依赖…

chat gpt 在开发当中的应用

chatgpt 出来已经有一段时间了,本人在开发的过程中也是有去使用。 经常使用的是讯飞大模型和通义千问,在使用的过程中,个人感觉讯飞大模型在写代码方面会比较智能。 比如问一个 sqlser 单表 数据量 几个亿如何处理的问题,讯飞会给…

C/C++ 飞翔的小鸟

载入问题: 解决之后效果: 放在main函数里面进行封装: 效果展示: 实现下坠 放进while(1)里面不断进入循环,每次进入循环,鸟的y坐标值就会发生变化,以此实现下下坠效果 效果展示&#…

Vue 数据绑定 和 数据渲染

目录 一、Vue快速入门 1.简介 : 2.MVVM : 3.准备工作 : 二、数据绑定 1.实例 : 2.验证 : 三、数据渲染 1.单向渲染 : 2.双向渲染 : 一、Vue快速入门 1.简介 : (1) Vue[/vju/],是Vue.js的简称,是一个前端框架,常用于构建前端用户…

Hive客户端和Beeline命令行的基本使用

本专栏案例数据集链接: https://download.csdn.net/download/shangjg03/88478038 1.Hive CLI 1.1 命令帮助Help 使用 `hive -H` 或者 `hive --help` 命令可以查看所有命令的帮助,显示如下: usage: hive-d,--define <key=value> Variable subsitution to ap…

C#学习相关系列之多线程---TaskCompletionSource用法(八)

一、TaskCompletionSource类的作用 TaskCompletionSource类回调代码转换为可以等待的Task&#xff0c;TaskCompletionSource本身不是可等待的&#xff0c;它也不是有效的异步方法返回类型。一旦TaskCompletionSource给了你一个任务&#xff0c;你可以简单地返回那个任务&#x…

2023NOIP A层联测20-点餐

一家新的餐馆开业了&#xff0c;为了吸引更多的顾客&#xff0c;每样餐品都有打折的活动。特别的&#xff0c;餐馆内一共有&#x1d45b;样菜品&#xff0c;编号从 1 1 1 到 n n n&#xff0c;每样菜品每人最多只能点一次。对于第 i i i 种菜品&#xff0c;其包含两种价格&a…

Flutter FittedBox

&#x1f525; 英文单词FittedBox &#x1f525; Fitted 通过有道翻译如下 &#xff1a; Box 通过有道翻译如下 &#xff1a; 对 FittedBox 的理解 我们可以将 FittedBox 理解为合适的盒子&#xff0c;将其它布局放到FittedBox这样一个盒子中&#xff0c;从而实现 盒子里面的…

kubernetes实验挑战二(troubleshoot pv pvc )

This 2-Node Kubernetes cluster is broken! Troubleshoot, fix the cluster issues and then deploy the objects according to the given architecture diagram to unlock our Image Gallery!! 1、 kubeconfig /root/.kube/config, User ‘kubernetes-admin’ Cluster: S…

SpringCloud(一) 服务架构的演变及注册RestTemplate实现服务的远程调用

目录 一, 服务架构的演变 1.1 单体架构 1.2 分布式架构 1.3 微服务 1.4 SpringCloud 二, 服务拆分和远程调用 2,1 服务拆分原则 2.2 服务拆分示例 2.3 创建相应数据库 2.4 实现远程调用示例 1, 更改需求 2, 注册RestTemplate实现远程调用 2.5 服务消费者和提供者 一…

D-Bus:数据类型

D-Bus中描述接口的属性和方法,有其自己定义的一套签名描述方式: 数据类型描述符号对应C++数据类型avector/array数组, ai表示的是vector<int32_t>bboolddouble双精度浮点数iint32_t,32位有符号整数nint16_t,16位有符号整数oobject_path对象路径quint16_t,16位无符号…

【数据分析】上市公司半年报数据分析

前言 前文介绍过使用网络技术获取上市公司半年报数据的方法&#xff0c;本文将对获取到的数据进行简要的数据分析。 获取数据的代码介绍在下面的两篇文章中 【java爬虫】使用selenium获取某交易所公司半年报数据-CSDN博客 【java爬虫】公司半年报数据展示-CSDN博客 全量数…

Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(中)

Flutter笔记 完全基于Flutter绘图技术绘制一个精美的Dart语言吉祥物Dash&#xff08;中&#xff09; 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://…

微服务框架Consul--新手入门

Consul Consul 是由 HashiCorp 开发的一款软件工具&#xff0c;提供了一组功能&#xff0c;用于服务发现、配置管理和网络基础设施自动化。它旨在帮助组织管理现代分布式和微服务架构系统的复杂性。以下是Consul的一些关键方面和功能&#xff1a; 服务发现&#xff1a;Consul …

【Qt之QString】去除“字符“或替换“字符“小技巧

去除字符 在Qt中&#xff0c;可以使用以下函数来去除字符串中的字符。 QString &remove(int i, int len)&#xff1a;删除字符串中从索引位置i开始长度为len的字符。QString &remove(QChar c, Qt::CaseSensitivity cs Qt::CaseSensitive)&#xff1a;删除字符串中所…

SQL Wildcards 通配符

SQL Wildcards 通配符 通配符用于替换字符串中的任何其他字符。 通配符与 SQL LIKE 运算符一起使用。在 WHERE 子句中使用LIKE运算符来搜索列中的指定模式。 有两个通配符与 LIKE 运算符一起使用&#xff1a; &#xff05; - 百分号表示零个&#xff0c;一个或多个字符_ - 下…

【Linux】centOS7安装配置及Linux的常用命令---超详细

一&#xff0c;centOS 1.1 centOS的概念 CentOS&#xff08;Community Enterprise Operating System&#xff09;是一个由社区支持的企业级操作系统&#xff0c;它是以Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码为基础构建的。CentOS提供了一个稳定、可靠且…