Restful 风格

news2024/12/26 22:08:37

目录

  • Restful风格
    • 创建springboot项目
      • SpringMVC开发Restful接口
      • 1、获取所有的员工
        • 思路
        • 代码
        • @RequestMapping
        • @GetMapping
      • 2、获取单个员工
        • 思路
        • 代码
        • 注意:
      • 3、删除员工数据
        • 思路:
        • 代码
          • 单个删除
          • 批量删除
      • 4、更新员工数据
        • 思路:
      • 5、jQuery发送请求
        • 发送delete请求
        • 发送get请求
        • 发送put请求
      • 6、响应状态码修改
      • 7、@RequestMapping
        • params
        • params有 = 和 != 的判断
        • headers

Restful风格

创建springboot项目

在这里插入图片描述

SpringMVC开发Restful接口

需求:用【restful】接口

1、获取所有的员工

思路
-设计资源路径 uri  /employees

-设计请求动作  get

-设计请求参数(业务) 无

-设计返回结果json   List<Employee>
代码

创建个员工类 Employee

在这里插入图片描述
使用Postman测试:

两个路径相同就会报错

如图可以在postman选择get的方式访问,不会报错是因为路径只有一个get

@RequestMapping

在这里插入图片描述

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

@GetMapping

在这里插入图片描述

2、获取单个员工

思路

1、设计资源路径 /employees/{id} {id}叫做路径占位符

2、设计请求动作 get

3、设计请求参数(业务) 接收id(id来自路径里面,?前面)

之前的 js 是来自 (localhost/employees?id = xxx) ?问号之后的

现在是 localhost/employees/id = xxx

4、设计返回结果json employee

代码

@PathVariable 告诉springmvc 去路径上找当前名称的参数,对应的占位符的位置,

把参数值设置到形参上

有贴@PathVariable这个注解才有值,没贴的话默认是从 路径的?问号后面找id参数,就会是null

这种  http://localhost:8080/employees/211   类型的传参就是RestFul风格

跟之前的区别就是一个是路径传参(Restful风格),一个是?id=1,这种问号后面传参(旧方式)

在这里插入图片描述

没贴@PathVariable注解

在这里插入图片描述

注意:

在这里插入图片描述
不一致,如图

在这里插入图片描述

参数和路径名称不一致时的获取数据的方法。

在这里插入图片描述

有多个参数的话,有几个名称不一样的,就要贴几个这个注解

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

也可以在工具里面测试

在这里插入图片描述

3、删除员工数据

思路:

设计资源路径 uri /employees/{id} 路径占位符

设计请求动作 delete

设计请求参数(业务) 接收id(来自路径里面,?前面)

设计返回结果 json void 按官方文档,返回的是空文档

代码
单个删除

在这里插入图片描述

批量删除

在这里插入图片描述

4、更新员工数据

思路:

设计资源路径 uri /employees/{id} 路径占位符

设计请求动作 put

设计请求参数(业务) 接收id(来自路径里面,?前面),其余参数可以来自body请求体

设计返回结果 json Employee

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5、jQuery发送请求

发送delete请求

在这里插入图片描述

发送get请求

这个【发送delete删除请求】没改动,证明只改动了type这个发送类型,就能根据发送类型和路径上的参数找到对应的方法

在这里插入图片描述

发送put请求

这个【发送delete删除请求】没改动,证明只改动了type这个发送类型,就能根据发送类型和路径上的参数找到对应的方法

在这里插入图片描述

6、响应状态码修改

在这里插入图片描述

在这里插入图片描述

比如删除成功后,我想让系统响应的状态码为 204,表示返回的内容为空的意思

在这里插入图片描述

成功修改成204的响应状态码
在这里插入图片描述

7、@RequestMapping

在这里插入图片描述

params

注解带上这个参数,那么在访问该方法的时候,就要带上这个参数

在这里插入图片描述

比如两个同样是delete的方法,都是要id作为参数,如果没有这个params作为区别的话,连编译都编译不了

在这里插入图片描述

删除多个
在这里插入图片描述

删除一个
在这里插入图片描述

在这里插入图片描述

params有 = 和 != 的判断

在这里插入图片描述

在这里插入图片描述

参数条件满足多个方法,直接报错

在这里插入图片描述

在这里插入图片描述

headers

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

在这里插入图片描述

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

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

相关文章

应该继续学习编程,还是学数控?

今日话题&#xff0c;继续学习编程&#xff0c;还是学数控&#xff1f;综合来说肯定是软件的待遇和工作环境都要好些。 当然这行有一定的技术门槛&#xff0c;所谓会者不难&#xff0c;难者不会。要入门需要一定的天赋或者说时间&#xff0c;当然 兴趣是最好的老师&#xff0c;…

【密评】商用密码应用安全性评估从业人员考核题库(九)

商用密码应用安全性评估从业人员考核题库&#xff08;九&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 2001 判断题 在GM/T 0022《IPSec VPN技术规范》中定义了 OSI七层网络…

微信小程序通过webview嵌入的h5 ,遇到打开pdf网址需求的解决办法

h5中&#xff0c;后端给到我一个地址假设为&#xff1a; https://tj-data-bak-to-test228.oss-cn-hanu.aliyunm/us/pdfs/glu_report/xxxxxx99391.pdf 然后需要自己写个pc页面&#xff0c;里面通过iframe引入这个pdf地址&#xff0c;然后将这个pc页面&#xff0c;通过webview嵌…

python项目之医用耗材网上申领系统(django)

项目简介 医用耗材网上申领系统实现了以下功能&#xff1a; 管理员功能&#xff1a;登录&#xff0c;耗材申领&#xff0c;日志管理&#xff0c;申领管理&#xff0c;系统设计&#xff0c;耗材管理。用户&#xff1a;日志管理&#xff0c;耗材申领&#xff0c;申领管理&#…

【EI会议征稿】第三届大数据、信息与计算机网络国际学术会议(BDICN 2024)

第三届大数据、信息与计算机网络国际学术会议&#xff08;BDICN 2024&#xff09; 2024 3rd International Conference on Big Data, Information and Computer Network 第三届大数据、信息与计算机网络国际学术会议&#xff08;BDICN 2024&#xff09;定于2024年1月12-14日在…

外汇天眼:澳大利亚拟规范数字资产中介与交易所!

澳大利亚政府&#xff0c;通过财政部&#xff0c;宣布正在努力引入一项监管框架&#xff0c;针对为澳大利亚居民和澳大利亚企业提供数字资产访问和持有服务的实体&#xff0c;将包括对所有数字资产中介的许可要求。 这些改革旨在解决已经确定的消费者风险&#xff0c;并支持数…

KNN算法 c++实现

来源【机器学习实战之一】&#xff1a;C实现K-近邻算法KNN_两个图像的特征向量应用knn模型进行匹配-CSDN博客 //计算每个训练数据到待分类元组的距离&#xff0c;取和待分类元组距离最近的k个训练数据&#xff0c;k个数据中哪个类别的训练数据占多数&#xff0c;则待分类元组就…

ewebeditor编辑器漏洞

原理 网页在线编辑器&#xff0c;权限限制不严格&#xff0c;弱口令&#xff0c;文件过滤出现问题 特征 在网址上面加ewebeditor 防御 1、及时更新网站的软件和插件&#xff0c;漏洞及时修补 2、加强网站的访问控制&#xff0c;限制未经授权的访问和操作 3、加强对网站数据…

NFTScan 支持非 EVM 公链的 NFT Collection 的认证功能

截止到 2023 年 10 月份&#xff0c;NFTScan 已经支持了 18 条区块链网络&#xff0c;其中有 14 条 是 EVM 兼容的区块链网络&#xff1a; Ethereum、BNBChain、Polygon、zkSync、Base、Linea、Arbitrum、Optimism、Avalanche、Fantom、PlatON、Cronos、Gnosis、Moonbeam。 另…

快速实现MQTT协议网关网口连接西门子PLC

MQTT协议网关网口连接西门子SMART200PLC操作说明v1.3 目录 一. 使用流程 二. 准备工作 2.1 需要准备如下物品 2.2 LF220网关准备工 2.3 PLC准备工作 2.4 电脑的准备工作 2.5 MQTT服务器 三. MQTT网关登陆平台配置步骤 3.1 登录 3.2 网关概况 3.3 MQTT连…

JVM(Java Virtual Machine)内存模型篇

前言 本文是JVM系列的内存模型篇&#xff0c;参考资料为《深入理解Java虚拟机》&#xff0c;本文章将会以HotSpot 虚拟机为介绍基础。 1.JVM简单介绍 Java Virtual Machine是运行Java程序的基础&#xff0c;JVM基于C、C实现&#xff0c;JVM有很多种类&#xff0c;但是这些虚…

idea 里 没有svn选项的处理办法

总结一下没有svn选项的几种情况&#xff1a; 情况1&#xff1a;IntelliJ IDEA打开带SVN信息的项目不显示SVN信息&#xff0c;项目右键SVN以及图标还有Changes都不显示解决方法 在VCS菜单中有个开关&#xff0c;叫Enabled Version Control Integration&#xff0c;在打开的窗口…

Mycat2 分布式数据库中间件

一.安装部署 Mycat2目前还不支持直接获取Docker镜像&#xff0c;需要自己通过Dockerfile打包镜像&#xff0c;其实这也是为了开发者考虑&#xff0c;比如一些个性化功能&#xff0c;如自定义分片等 Dockerfile FROM docker.io/adoptopenjdk/openjdk8:latestENV AUTO_RUN_DIR…

【软考-中级】系统集成项目管理工程师 【17 信息系统安全管理】

持续更新。。。。。。。。。。。。。。。 【第十七章】信息系统安全管理 (选择2分 17.1 信息安全管理17.1.1 信息安全含义和目标 17.2 信息系统安全17.2.1信息系统安全概念17.2.2信息系统安全属性17.2.3信息系统安全管理体系 17.3 物理安全管理17.3.1计算机机房与设施安全17.3.…

Postman入门基础 —— 接口测试流程!

一、编写接口测试计划 接口测试计划和功能测试计划目标一致&#xff0c;都是为了确认需求、确定测试环境、确定测试方法&#xff0c;为设计测试用例做准备&#xff0c;初步制定接口测试进度方案。一般来说&#xff0c;接口测试计划包括概述、测试资源、测试功能、测试重点、测…

【C++】用constexpr,constinit,consteval让程序跑的快一点

从C11加入constexpr关键字开始&#xff0c;到C20又加入了consteval &#xff0c;constinit &#xff0c;有3个const打头的关键字 虽然是以const开头的&#xff0c;不过这3个关键字主要是指示在编译时候的动作&#xff0c;它们都是在编译时就已经被编译程序处理&#xff0c;并非…

Python使用openpyxl读取excel图片

使用openpyxl读取excel中图片&#xff0c;并保存到本地. 需要的包。 from openpyxl import load_workbook from PIL import Image import cv2 import numpy as np具体实现 先把openpyxl读取的图片转换为Image对象&#xff0c;再将Image对象转换为numpy array&#xff0c;num…

【无标题】Docker入门到拿捏,图文码并茂

0. 项目部署的问题 大型项目组件较多,运行环境也较为复杂&#xff0c;部署时会碰到- -些问题: 依赖关系复杂&#xff0c;容易出现兼容性问题开发、测试、生产环境有差异 1. 认识Docker Docker如何解决依赖的兼容问题的? 将应用的Libs (函数库)、Deps (依赖)、配置与应用一…

V8引擎编译原理(VIP课程)

什么是V8 V8是谷歌的开源高性能JavaScript和WebAssembly引擎&#xff0c;用C编写。它被用于Chrome和Node.js等。它实现ECMAScript和WebAssembly&#xff0c;并在Windows 7或更高版本、macOS 10.12以及使用x64、IA-32、ARM或MIPS处理器的Linux系统上运行。V8可以独立运行&#…

KMP substring search 算法 案例分析

一、理解KMP算法如何运用后缀和前缀的信息 文本串text:abcxabcdabxabcdabcdabcy模式串pattern:abcdabcy 当发现不匹配的点&#xff0c;我们的目标不是在这个串中进行回溯操作。因此我们要检查的是 d 的前面的子串&#xff08;abc&#xff09;&#xff0c;在这个子串&#xff08…