【spring boot】注解@ApiParam @PathVariable @RequestParam三者区别
1.@ApiParam,就是用于swagger提供开发者文档,文档中生成的注释内容。
@ApiOperation( value = "编辑公告", notes = "编辑公告", httpMethod = "POST" ) @RequestMapping( value = "/edit", method = RequestMethod.POST ) public RequestResult edit( @ApiParam(name = "title", value = "公告标题", required = true) @RequestParam("title") String title, @ApiParam(name = "content", value = "公告内容", required = true) @RequestParam("content") String content){
2.@RequestParam,是获取前端传递给后端的参数,可以是get方式,也可以是post方式。
其中如果前端传递的参数和后端你接受的参数起的名字字段是一致的可以省略不写,所以@RequestParam("title") String title 也可以直接写@RequestParam String title。
如果不一致一定要完整写,不然获取不到,如下面的bis_key就必须写。
@ApiOperation( value = "编辑公告", notes = "编辑公告", httpMethod = "POST" ) @RequestMapping( value = "/edit", method = RequestMethod.POST ) public RequestResult edit( @ApiParam(name = "bis_key", value = "bis_key", required = true)@RequestParam("bis_key") String bisKey, @ApiParam(name = "title", value = "公告标题", required = true) @RequestParam String title, @ApiParam(name = "content", value = "公告内容", required = true) String content,
3.@PathVariable,是获取get方式,url后面参数,进行参数绑定
@ApiOperation(value = "删除公告", notes = "删除公告", httpMethod = "POST") @RequestMapping(value = "/delete/{bisKey}", method = RequestMethod.POST) public RequestResult remove(@ApiParam(name = "bisKey", value = "需要删除的公告ids", required = true) @PathVariable String bisKey) {
对于Restful风格
@PatchMapping("api/v1/staff/{id}") @ApiOperation(value = "修改staff") @ApiImplicitParams( ApiImplicitParam(name = TokenService.TOKEN_HEADER, defaultValue = TokenService.TOKEN_STARTS, value = "access_token", dataType = "string", paramType = "header") ) @Transactional fun patch( @RequestHeader(name = TokenService.TOKEN_HEADER, required = true) token: String, @PathVariable("id") id: Long, @RequestBody request: CreateStaffRequest ): GenericResponse<StaffData> { val user = this.user(token).user var staff = this.staffService.findStaff(id) staff = this.staffService.updateStaff( staff = staff, realname = request.realname, mobile = request.mobile, idCard = request.idCard, gender = request.gender, password = request.password, subCompanyId = request.subCompanyId, departmentId = request.departmentId, roleIdSet = if (request.roleIdSet.count() <= 0) throw BadRequestException("roleIdSet大小不能为0") else request.roleIdSet, enabled = request.enabled, updater = user ) return GenericResponse( items = StaffData(staff) ) } @DeleteMapping("api/v1/staff/{id}") @ApiOperation(value = "删除staff") @ApiImplicitParams( ApiImplicitParam(name = TokenService.TOKEN_HEADER, defaultValue = TokenService.TOKEN_STARTS, value = "access_token", dataType = "string", paramType = "header") ) @Transactional fun delete( @RequestHeader(name = TokenService.TOKEN_HEADER, required = true) token: String, @PathVariable("id") id: Long ): GenericResponse<StaffData> { val user = this.user(token).user var staff = this.staffService.findStaff(id) staff = this.staffService.deleteStaff( staff = staff, operator = user ) return GenericResponse( items = StaffData(staff) ) } @PutMapping("api/v1/staff/{id}") @ApiOperation(value = "恢复被删除的staff操作") @ApiImplicitParams( ApiImplicitParam(name = TokenService.TOKEN_HEADER, defaultValue = TokenService.TOKEN_STARTS, value = "access_token", dataType = "string", paramType = "header") ) @Transactional fun restore( @RequestHeader(name = TokenService.TOKEN_HEADER, required = true) token: String, @PathVariable("id") id: Long ): GenericResponse<StaffData> { val user = this.user(token).user var staff = this.staffService.findStaff(id) staff = this.staffService.restoreStaff(staff, user) return GenericResponse( items = StaffData(staff) ) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2017-07-20 datatables 配套bootstrap3样式使用小结(1)