【SpringBoot + Vue 尚庭公寓实战】标签和配套管理接口实现接口实现(六)
文章目录
- 【SpringBoot + Vue 尚庭公寓实战】标签和配套管理接口实现接口实现(六)
- 1、保存或更新标签信息
- 2、根据id删除标签信息
- 3、根据类型查询配套列表
- 4、新增或修改配套信息
- 5、根据id删除配套信息
1、保存或更新标签信息
查看接口
访问http://localhost:8080/doc.html
点击标签管理查看接口
点击新增或修改标签信息
进行开发
在LabelController
中增加如下内容
@Operation(summary = "保存或更新标签信息")
@PostMapping("saveOrUpdate")
public Result saveOrUpdateFacility(@RequestBody LabelInfo labelInfo) {
service.saveOrUpdate(labelInfo);
return Result.ok();
}
解释
@Operation: 这是用于Swagger UI生成接口文档的注解,它提供了此API操作的简要描述。
@PostMapping: 将此方法映射到POST请求的"/saveOrUpdate"路径,用于处理来自客户端的POST请求。
Result: 此方法的返回类型,使用泛型封装API的返回结果。Result.ok()用于生成一个标准的成功响应。
@RequestBody: 指明此参数应从请求的正文(Body)中获取,并自动由Spring框架的HTTP消息转换器将JSON数据映射到LabelInfo对象。
service.saveOrUpdate(labelInfo): 这一行调用了业务层的saveOrUpdate方法,这个方法通常检查传入的labelInfo对象是否包含id。如果包含id,则为更新操作;如果不包含,认为是新的记录,执行插入操作。
Result.ok(): 这通常是一个静态方法,用来创建一个表示操作成功的响应对象。在这个场景中,它没有返回具体的数据,只是一个成功的状态,告诉客户端操作已成功完成。
2、根据id删除标签信息
查看接口
访问http://localhost:8080/doc.html
点击标签管理查看接口
点击根据id删除标签信息
进行开发
在LabelController
中增加如下内容
@Operation(summary = "根据id删除标签信息")
@DeleteMapping("deleteById")
public Result deleteLabelById(@RequestParam Long id) {
labelInfoService.removeById(id);
return Result.ok();
}
解释
@Operation: 这个Swagger注解用于生成API文档,描述了这个API端点的主要功能,即根据ID删除标签信息。
@DeleteMapping(“deleteById”): 此注解将方法映射到对应的HTTP
DELETE请求上,路径为"/deleteById"。DELETE请求通常用于表示删除资源的操作。
public Result deleteLabelById(@RequestParam Long id):
这是方法的签名,返回一个Result类型的对象,这是一个自定义响应类,通常用于API的标准化输出。@RequestParam注解用于从请求的URL查询参数中接收名为id的参数,此处没有设置required为false,因此它是必需的。
labelInfoService.removeById(id):
在此行,labelInfoService的removeById方法被调用,传入的参数是id。这个方法负责在数据存储层(如数据库)中删除指定ID的记录。
return Result.ok():
方法返回一个Result.ok()调用的结果,这通常是一个工厂方法,用来创建一个成功的响应对象,表明删除操作已成功执行,没有返回数据,只是一个操作成功的确认。
3、根据类型查询配套列表
查看接口
访问http://localhost:8080/doc.html
点击配套管理
点击[根据类型]查询配套信息列表
进行开发
在FacilityController
中增加如下内容
@Tag(name = "标签管理")
@RestController
@RequestMapping("/admin/label")
public class LabelController {
@Autowired
private LabelInfoService labelInfoService;
@Operation(summary = "(根据类型)查询标签列表")
@GetMapping("list")
public Result<List<LabelInfo>> labelList(@RequestParam(required = false) ItemType type) {
LambdaQueryWrapper<LabelInfo> labelInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
labelInfoLambdaQueryWrapper.eq(type!=null,LabelInfo::getType,type);
List<LabelInfo> list = labelInfoService.list(labelInfoLambdaQueryWrapper);
return Result.ok(list);
}
}
解释
@Operation: 这是用于为Swagger UI生成接口文档的描述信息。
@GetMapping: 将此方法映射到GET请求的"/list"路径,用于处理来自客户端的GET请求。
Result<List>: 指定方法的返回类型,这里使用泛型包装了标签信息的列表,并使用自定义的Result类型标准化响应结构。
@RequestParam: 允许通过请求的查询参数(URL中的参数)传递信息到方法中。required = false表示这个参数不是必须的,请求中可以不包含它。
LambdaQueryWrapper: MyBatis Plus提供的一个工具类,用于构建SQL语句的条件部分。
labelInfoLambdaQueryWrapper.eq(…): 添加一个条件到查询中。这里使用Java 8的方法引用来指定字段名,保证了类型安全。
labelInfoService.list(…): 调用业务逻辑层的方法,执行数据库查询操作,并获取结果。
Result.ok(list): 创建一个表示操作成功的结果,包含查询到的数据,这通常用于统一API的响应结构。
4、新增或修改配套信息
查看接口
访问http://localhost:8080/doc.html
点击配套管理
点击新增或修改配套信息
进行开发
在FacilityController
中增加如下内容
@Tag(name = "标签管理")
@RestController
@RequestMapping("/admin/label")
public class LabelController {
@Autowired
private LabelInfoService labelInfoService;
@Operation(summary = "新增或修改标签信息")
@PostMapping("saveOrUpdate")
public Result saveOrUpdateLabel(@RequestBody LabelInfo labelInfo) {
labelInfoService.saveOrUpdate(labelInfo);
return Result.ok();
}
}
5、根据id删除配套信息
查看接口
访问http://localhost:8080/doc.html
点击配套管理
点击根据id删除配套信息
进行开发
在FacilityController
中增加如下内容
@Tag(name = "标签管理")
@RestController
@RequestMapping("/admin/label")
public class LabelController {
@Autowired
private LabelInfoService labelInfoService;
@Operation(summary = "根据id删除标签信息")
@DeleteMapping("deleteById")
public Result deleteLabelById(@RequestParam Long id) {
labelInfoService.removeById(id);
return Result.ok();
}
}