Dropwizard 中使用Jersey开发Restful接口(修改、删除)

news/2025/1/13 3:08:47/

前面我们介绍了使用Jersey开发查询、新增接口,并规范了响应报文格式,如果您想了解,可以参考:

Dropwizard 中使用Jersey开发Restful接口(查询接口)icon-default.png?t=N4P3https://blog.csdn.net/m1729339749/article/details/130812817

Dropwizard 中使用Jersey开发Restful接口(响应报文格式、新增)icon-default.png?t=N4P3https://blog.csdn.net/m1729339749/article/details/130923232

本篇,我们介绍使用Jersey开发修改、删除的接口:

一、修改商品

@PUT
@Path("/{id}")
public Response update(@PathParam("id") String id, Goods goods) {// 查询商品Goods hadGoods = findById(id);// 判断商品是否存在if(Objects.isNull(hadGoods)) {return Response.ok().entity(new ResponseResult(404, "商品不存在")).build();}// 修改商品名称hadGoods.setName(goods.getName());return Response.ok().entity(new ResponseResult(0, "成功", hadGoods)).build();
}

@PUT:代表的是请求的方式、使用PUT的请求方式

@PathParam:代表的是从请求路径中获取参数

代码中对商品是否存在进行了校验,校验成功后,修改了商品的名称

测试:修改商品

请求方式:PUT

请求地址:http://localhost:8080/goods/2

请求报文:

{ "name": "火腿肠" }

响应结果如下:

{"code": 0,"msg": "成功","data": {"id": "2","name": "火腿肠"}
}

查询商品的结果如下:

{"code": 0,"msg": "成功","data": [{"id": "1","name": "薯片"},{"id": "2","name": "火腿肠"}]
}

二、删除商品

@DELETE
@Path("/{id}")
public Response delete(@PathParam("id") String id) {for(Iterator<Goods> it = goodsList.iterator(); it.hasNext(); ) {// 获取商品Goods goods = it.next();// 判断商品编号是否一致if(goods.getId().equals(id)) {// 移除商品it.remove();return Response.ok().entity(new ResponseResult(0, "成功", goods)).build();}}// 未找到商品return Response.ok().entity(new ResponseResult(404, "商品不存在")).build();
}

@DELETE:代表的是请求的方式、使用DELETE的请求方式

@PathParam:代表的是从请求路径中获取参数

测试:删除商品

请求方式:DELETE

请求地址:http://localhost:8080/goods/2

响应结果如下:

{"code": 0,"msg": "成功","data": {"id": "2","name": "可口可乐"}
}

查询商品的结果如下:

{"code": 0,"msg": "成功","data": [{"id": "1","name": "薯片"}]
}

http://www.ppmy.cn/news/107657.html

相关文章

element dialog对话框中select/cascader 弹窗不跟随问题

Element 在使用对话框中出现的情况 Select 选择器 Cascader 级联选择器 在这两种组件组合使用是出现了滑动 弹出框不跟随情况&#xff0c;如下 出现这种情况原因是因为弹出框相对的位置是body&#xff0c;展示后&#xff0c;如果body不动&#xff0c;所以弹窗位置不会发生改变…

中关村论坛 | 金融业从增量到存量博弈背后两大原因 更重要的是……

在数字经济浪潮下&#xff0c;中国金融业正在经历数字化转型的深刻变革。为研判金融科技行业发展趋势和前景&#xff0c;探索金融创新与监管安全的边界&#xff0c;“2023中关村论坛金融科技论坛”于5月29日召开。 中电金信常务副总经理冯明刚与中国银行软件中心副总经理康钧伟…

RK3318 android12 HEVC-1080P 4K VP9等格式视频播放不了

同样视频在同样硬件在android10的固件刷机测试播放正常 在android12播放失败,在媒体中心点开视频直接闪退了 在android10 能播放4K视频, 我对比了ddr频率 cat /d/clk/clk_summary | grep ddr android10 clk_ddrmon 0 0 0 24000000 0 0 50000 pclk_ddr 3 3 0 61440000 0 0 5…

64位MFC程序调用32位DLL

当64位MFC应用程序调用32位DLL时&#xff0c;你可以通过创建一个中间层Wrapper DLL来实现。下面是一个简单的示例&#xff0c;演示如何从64位MFC应用程序调用32位DLL的函数&#xff1a; 假设你有一个32位DLL&#xff0c;其中包含一个名为MyFunction的函数&#xff0c;它接受一…

清凉一夏小风扇-Vue3版

这里写目录标题 前言 一、效果二、代码分享 前言 本片文章主要是做一个小练习&#xff0c;通过Vue来制作一个风扇练习css动画。 上一篇文章主要是讲解了React实现的部分 React实现部分看这里–> 一、效果 二、代码分享 1、主体框架 “sass”: “^1.62.1”, “vue”: “^3…

matlab读二进制文件

matlab读二进制文件 1. 打开文件 fid fopen(文件名, 读取方式)fid 句柄值 小于0&#xff0c;表示打开失败&#xff0c;大于0表示打开成功 文件名 字符串&#xff0c;使用单引号 读写方式 r 只读方式打开文件&#xff0c;默认方式&#xff0c;该文件已存在 r 读写方式打开文…

os模块怎样进行文件的增查删改操作?

除 Python 内置方法外&#xff0c;os 模块中也定义了与文件操作相关的函数&#xff0c;包括删除文件、文件重命名、创建/删除目录、获取当前目录、更改默认目录与获取目录列表等os模块在使用之前需要导入&#xff0c;具体代码如下 : import os下面对os模块中的常用函数进行介绍…

不用运算符的加法运算

一.不用运算符的加法 1.题目描述 设计一个函数把两个数字相加。不得使用 或者其他算术运算符。 力扣:力扣 2.问题分析 1.知识预备 注意:下面所有的结论的进位是考虑二进制的进位,因为我们使用的位运算符,是针对二进制进行的. 结论一:在不考虑进位的情况下&#xff0c;其无…