当前位置: 首页 > news >正文

Spring MVC框架支持RESTful,设计URL时可以使用{自定义名称}的占位符@Get(“/{id:[0-9]+}/delete“)

背景:在开发实践中,如果没有明确的规定URL,可以参考:

  • 传统接口
    获取数据列表,固定接口路径:/数据类型的复数
    • 例如:/albums/select
  • RESTful接口
    - 根据ID获取某条数据:/数据类型的复数/{id} - 例如:/albums/select/{id:[0-9]+}
    - 根据ID对某条数据执行某种操作:/数据类型的复数/{id}/命令,或/数据类型的复数/{id}/数据属性/命令 - 例如:/albums/{id:[0-9]+}/delete

Spring MVC框架很好的支持了RESTful,在设计URL时,可以使用{自定义名称}的占位符表示此处应该是某个参数值,在此请求参数上使用@PathVariable注解,例如:

1.URL占位符设计接口

@PostMapping("/{id}/delete")
public ??? delete(@PathVariable Long id) {// 暂不关心方法的实现
}

或者 如果占位符中的名称,和请求参数的名称不一致,需要在@PathVariable注解中配置占位符名称

@PostMapping("/{id}/delete")
public ??? delete(@PathVariable("id") Long albumId) {// 暂不关心方法的实现
}
  • 实际效果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

当设计成以上格式,则客户端提交请求时,占位符位置无论是什么值,都可以匹配上以上设计的路径!注意:如果客户端提交的请求路径中,占位符位置的内容无法被转换成String类型时,将出现400错误。

2.URL正则设计接口

在设计占位符时,可以在占位符名称的右侧、在右大括号的左侧添加1个冒号,并在冒号的右侧可以添加正则表达式,以限制参数值的基本格式,例如:

@PostMapping("/{id:[0-9]+}/delete")
public ??? delete(@PathVariable Long id) {// 暂不关心方法的实现
}

如果客户端提交的请求路径中,占位符位置的内容不匹配以上正则表达式时,将出现404错误。
另外,使用了占位符及互斥的正则表达式的配置,是允许共存的,例如:

@Get("/{id:[0-9]+}")
public ??? getStandardById(@PathVariable Long id) {// 暂不关心方法的实现
}@Get("/{name:[a-z]+}")
public ??? getStandardByName(@PathVariable String name) {// 暂不关心方法的实现
}

注意: 如果以上两个方法的占位符值都是纯数字的,那么一个url将可以匹配以上2个正则表达式,
则Spring MVC框架无法选取,将出现错误!

3.URL占位符跟传统接口共存,优先使用精准匹配的传统接口

另外不使用占位符的配置,与使用了占位符的配置,是允许共存的,例如:

@Get("/{name:[a-z]+}")
public ??? getStandardByName(@PathVariable String name) {// 暂不关心方法的实现
}@Get("/test")
public ??? testStandardByName(String name) {// 暂不关心方法的实现
}

当提交了对应 /test 的请求时,会执行以上第2个方法,即精准匹配的方法,而不会执行使用了占位符的方法。

创造价值,乐哉分享!
一起入门后端 204146007

相关文章:

Spring MVC框架支持RESTful,设计URL时可以使用{自定义名称}的占位符@Get(“/{id:[0-9]+}/delete“)

背景:在开发实践中,如果没有明确的规定URL,可以参考: 传统接口 获取数据列表,固定接口路径:/数据类型的复数 例如:/albums/select RESTful接口 - 根据ID获取某条数据:/数据类型的复数/{id} - 例…...

【GoLang】哪些大公司正在使用Go语言

你见过哪些令你膛目结舌的代码技巧? 文章目录 你见过哪些令你膛目结舌的代码技巧?前言:哪些大公司正在使用Go语言谷歌(Google):脸书(Facebook):亚马逊(Amazon…...

美团外卖商超商品销量数据

美团外卖商超商品月销量 字段名 店铺id 店铺名称 商品id 商品名称 商品分类 规格名 原价 现价 月销 规格属性 描述 商品图片 含商家月销量...

【C++高阶(八)】单例模式特殊类的设计

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 单例模式 1. 前言2. 设计一个不能被拷贝/继承的…...

Linux之进程(五)(进程控制)

目录 一、进程创建 1、fork函数创建进程 2、fork函数的返回值 3、fork常规用法 4、fork调用失败的原因 二、进程终止 1、进程终止的方式 2、进程退出码 3、进程的退出方法 三、进程等待 1、进程等待的必要性 2、wait函数 3、waitpid函数 四、进程程序替换 1、概念…...

63. 不同路径 II 23.12.21(二)

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角…...

【线性代数】两个向量组等价,其中一个向量组线性无关,另一个向量组也是线性无关吗?

一、问题 两个向量组等价,其中一个向量组线性无关,另一个向量组也是线性无关吗? 二、答案 不一定,当两个向量组中的向量个数也相同时,结论才成立.若向量个数不相同,结论不成立. 例如: 向量组一:(1,0),(0,1) 向量组二:(1,0),(0,1),(1,1) 两…...

c语言:指针作为参数传递

探究实参与形参它们相互独立 由于主调函数的变量a,b与被调函数的形参x,y它们相互独立。函数 swap 可以修改变量x,y,但是却无法影响到主调函数中的a,b。 现在利用取地址运算符,分别打印它们的首地址&#x…...

YOLOv5性能评估指标->mAP、Precision、Recall、FPS、Confienc (讲解论文关注的主要指标)

简介 这篇博客,主要给大家讲解我们在训练yolov5时生成的结果文件中各个图片及其中指标的含义,帮助大家更深入的理解,以及我们在评估模型时和发表论文时主要关注的参数有那些。本文通过举例训练过程中的某一时间的结果来帮助大家理解&#xf…...

陶建辉在 CIAS 2023 谈“新能源汽车的数字化”

近年,中国的新能源汽车发展迅猛,在全球竞争中表现出色,已经连续 8 年保持全球销量第一。在新兴技术的推动下,新能源汽车的数字化转型也正在加速进行,从汽车制造到能源利用、人机交互,各个环节都在进行数字化…...

PSP - 结构生物学中的机器学习 (NIPS MLSB Workshop 2023.12)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/135120094 Machine Learning in Structural Biology (机器学习在结构生物学中) 网址:https://www.mlsb.io/ Workshop at the 37th Co…...

某领先的集成电路研发中心:建立跨网交换平台 杜绝数据泄露风险

1、客户介绍 某技术领先的集成电路研发中心,是产学研合作的国家级集成电路研发中心,致力于解决重大共性技术的研发及服务支撑问题。该中心积极探索国际化道路,不断提升国际影响力,与多家国际著名集成电路企业和研发机构建立技术合…...

map|动态规划|单调栈|LeetCode975:奇偶跳

作者推荐 【贪心算法】【中位贪心】.执行操作使频率分数最大 涉及知识点 单调栈 动态规划 map 题目 给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数。在你跳跃的过程中,第 1、3、5… 次跳跃称为奇数跳跃,而第 2、…...

从安全性角度,看“可信数字底座”有何价值

文章目录 每日一句正能量前言概念对比安全技术对比思考与建议 每日一句正能量 不管现在有多么艰辛,我们也要做个生活的舞者。 前言 万向区块链此前提出“可信数字底座”这一概念和技术,即将区块链与物联网、人工智能、隐私计算等数字化技术相融合&#…...

软件设计模式:UML类图

文章目录 前言一、📖设计模式概述1.软件设计模式的产生背景2.软件设计模式3.设计模式分类 二、📣UML图1.类图概述2.类的表示法3.类与类之间的关系关联关系(1)单向关联(2)双向关联(3)…...

力扣题目学习笔记(OC + Swift)15. 三数之和

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…...

想将电脑屏幕共享到iPhone上,但电脑是Linux系统,可行吗?

常见Windows系统或macOS系统的电脑投屏到手机,难道Linux系统的电脑要投屏就是个难题吗? 想要将Linux系统投屏到iPhone、iPad、安卓设备、鸿蒙设备,其实你可以利用软件AirDroid Cast和Chrome浏览器!连接同一网络就可以直接投屏。 第…...

大华 DSS 城市安防数字监控系统 SQL 注入漏洞

漏洞简介 大华DSS数字监控系统itcBulletin接口对传入的数据没有预编译和充足的校验,导致该接口存在SQL注入漏洞,可通过注入漏洞获取数据库敏感信息。 资产测绘 app“dahua-DSS” 漏洞复现 POC: POST /portal/services/itcBulletin?wsdl HTTP/1.1 H…...

vue中的侦听器和组件之间的通信

目录 一、侦听器 监听基本数据类型: 监听引用数据类型: 计算属性和watch区别? 二、组件通信/传值方式 1.父子组件传值 父组件给子组件传值: (1)props (2)provide inject &…...

maven-shade-plugin有什么用

maven-shade-plugin 是 Maven 的一个插件,用于创建可执行的 JAR 文件,并且可以将所有依赖项打包到一个 JAR 文件中。 该插件的主要用途是创建包含所有依赖项的“fat” JAR(也称为“uber” JAR),使得应用程序可以作为一…...

电磁学核心概念与解题框架精讲(猴博士风格)

1. 电磁学基础概念拆解:从场强到电势 电场强度E和电势U是电磁学中最基础的两个物理量,就像描述一个人需要身高和体重两个指标一样。很多同学刚开始学电磁学时容易混淆这两个概念,我用一个简单的类比帮大家理解:想象电场强度就像山…...

从‘噬菌体’到清晰地图:我的LIO-SAM避坑实战记录(含Ubuntu版本选择建议)

从“噬菌体”到清晰地图:LIO-SAM实战避坑指南与Ubuntu版本选择建议 第一次在RViz里看到那个旋转成筒状的地图时,我盯着屏幕足足愣了三分钟——这和我预想中的高精度点云地图相差了十万八千里。更令人崩溃的是,当我把设备搬到室外测试时&#…...

益达App:5分钟打造你的个性化跨平台媒体中心

益达App:5分钟打造你的个性化跨平台媒体中心 【免费下载链接】yidaRule 益达规则仓库 项目地址: https://gitcode.com/gh_mirrors/yi/yidaRule 在信息爆炸的时代,我们每天都要面对海量的媒体内容——视频、音频、小说、漫画分散在各个平台和网站中…...

脑皮层房地产:公司在我的神经突触建数据中心

在数字时代的浪潮中,一个颠覆性的概念正在兴起:企业将数据中心直接构建于人类神经突触之上,仿佛一场“脑皮层房地产”的革命。这并非科幻小说的臆想,而是对现代分布式系统和人工智能架构的深刻隐喻。对于软件测试从业者而言&#…...

机械臂+点云相机实战:手眼标定全流程避坑指南(附PCL库代码)

机械臂与点云相机手眼标定实战:从原理到代码的完整避坑指南 在工业自动化与机器人应用领域,机械臂与3D视觉系统的协同作业已成为提升生产灵活性和智能化的关键技术。其中,手眼标定作为连接机械臂运动学与视觉感知的桥梁,其精度直接…...

深度学习框架基于YOLOv8➕pyqt5的水稻害虫检测系统,YOLOV8模型如何训练水稻害虫检测数据集

基于YOLOv8➕pyqt5的水稻害虫检测系统,内含5229张水稻害虫数据集 包括[‘褐飞虱’, ‘绿叶蝉’, ‘稻纵卷叶螟’, ‘稻蝽’, ‘螟虫’, ‘稻蓟马’],6类也可自行替换模型,使用该界面做其他检测 🌾 基于 YOLOv8 PyQt5 的水稻害虫检…...

不止于集成:在RuoYi-Camunda流程设计器中实现自定义属性面板与FEEL表达式校验

深度定制RuoYi-Camunda流程设计器:从属性面板扩展到FEEL表达式校验实战 当标准BPMN设计器无法满足复杂业务需求时,定制化开发成为必经之路。某跨国零售企业的审批系统曾因无法在流程节点上定义"区域经理审批阈值"字段,导致每次业务…...

LabVIEW标准表法开发气体流量标准装置

标准表法是气体流量计检定校准的主流方法,针对气体流量检测过程中自动化程度低、数据采集精度不足、设备控制协同性差的问题,依托 LabVIEW 图形化编程平台搭建气体流量标准装置应用系统,实现温度、压力、流量等参数的自动化采集、设备精准调控…...

如何设计优雅的RESTful API:Blade框架完整指南

如何设计优雅的RESTful API:Blade框架完整指南 【免费下载链接】blade :rocket: Lightning fast and elegant mvc framework for Java8 项目地址: https://gitcode.com/gh_mirrors/bl/blade 想要在Java 8中快速构建高性能、优雅的RESTful API吗?B…...

XGBoost+SHAP实战:如何让机器学习模型‘看懂’地图?

XGBoostSHAP实战:如何让机器学习模型‘看懂’地图? 当机器学习遇上地理空间数据,我们常常面临一个核心矛盾:模型预测精度与人类可解释性之间的博弈。传统GIS分析方法如空间滞后模型(SLM)或地理加权回归&…...