Springboot + swagger2 通过实体对象封装形式上传视频或者图片问题解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80925134

AudioUploadRequest 封装了音频和图片 属相 无法swagger 框架无法直接载入 需要在 controller 层调用的方法中加入 

@ApiParam(value=  ...) MultipartFile cover 即可 通过对象去调用 视频和图片属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A:好的,下面是一个使用springboot、mybatis、swagger2、valid参数校验、图片上传、异常统一处理、返回体封装、vue构建相册项目的CRUD接口实现的代码示例。 1. 定义实体类 ```java public class Album { private Long id; @NotBlank(message = "相册名称不能为空") private String name; @NotBlank(message = "相册描述不能为空") private String description; private String coverUrl; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; // getter和setter省略... } ``` 2. 定义Mapper接口 ```java @Mapper public interface AlbumMapper { List<Album> findAll(); Album findById(Long id); int insert(Album album); int update(Album album); int deleteById(Long id); } ``` 3. 定义Service接口及实现类 ```java public interface AlbumService { List<Album> findAll(); Album findById(Long id); void save(Album album); void update(Album album); void deleteById(Long id); } @Service public class AlbumServiceImpl implements AlbumService { @Autowired private AlbumMapper albumMapper; @Override public List<Album> findAll() { return albumMapper.findAll(); } @Override public Album findById(Long id) { return albumMapper.findById(id); } @Override public void save(@Valid Album album) { album.setCreateTime(new Date()); album.setUpdateTime(new Date()); albumMapper.insert(album); } @Override public void update(@Valid Album album) { album.setUpdateTime(new Date()); albumMapper.update(album); } @Override public void deleteById(Long id) { albumMapper.deleteById(id); } } ``` 4. 定义Controller接口 ```java @RestController @RequestMapping("/album") @Api(tags = "相册管理接口") public class AlbumController { @Autowired private AlbumService albumService; @GetMapping("/") @ApiOperation("查询所有相册") public Result findAll() { List<Album> albumList = albumService.findAll(); return Result.success(albumList); } @GetMapping("/{id}") @ApiOperation("查询相册详情") public Result findById(@PathVariable Long id) { Album album = albumService.findById(id); if (album != null) { return Result.success(album); } else { return Result.error(ResultCode.NOT_FOUND); } } @PostMapping("/") @ApiOperation("添加相册") public Result save(@Valid @RequestBody Album album) { albumService.save(album); return Result.success(); } @PutMapping("/{id}") @ApiOperation("更新相册") public Result update(@PathVariable Long id, @Valid @RequestBody Album album) { Album old = albumService.findById(id); if (old != null) { album.setId(id); albumService.update(album); return Result.success(); } else { return Result.error(ResultCode.NOT_FOUND); } } @DeleteMapping("/{id}") @ApiOperation("删除相册") public Result deleteById(@PathVariable Long id) { Album album = albumService.findById(id); if (album != null) { albumService.deleteById(id); return Result.success(); } else { return Result.error(ResultCode.NOT_FOUND); } } } ``` 5. 定义全局异常处理器 ```java @ControllerAdvice @ResponseBody public class GlobalExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) public Result handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { FieldError fieldError = e.getBindingResult().getFieldError(); String message = fieldError.getDefaultMessage(); return Result.error(ResultCode.INVALID_PARAMETER, message); } // other exception handler... } ``` 6. 完成以上步骤后,启动SpringBoot应用程序,然后使用SwaggerUI测试接口。同时,在前端项目中可以使用Vue框架实现前端展示及交互。 以上就是使用springboot、mybatis、swagger2、valid参数校验、图片上传、异常统一处理、返回体封装、vue构建相册项目的CRUD接口实现的一个简单示例,仅供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值