tft每日頭條

 > 生活

 > swagger動态注解

swagger動态注解

生活 更新时间:2024-07-24 11:23:13

剛開始的時候,在controller層使用@RequestParam的時候,發現這個參數是必須要輸入值的,但是我們有時候必須查詢的時候允許參數為空,使用這個注解就不行了。

在集成了swagger2後,找了半天的原因,發現使用@ApiImplicitParam這個注解可以解決這個問題。

swagger動态注解(常用注解使用詳解)1

對應下面的參數。

所以我們可以使用這個注解來解決我們所遇到的參考為空的問題。

而且已經集成了swagger2,所以我們盡量來使用這個注解吧。

說明:

1.這裡使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4)

2.這裡是說明常用注解的含義和基本用法(也就是說已經對swagger進行集成完成)

沒有集成的請參見

SpringBoot集成springfox-swagger2構建restful API

SpringMVC集成springfox-swagger2構建restful API

官網WIKI

常用注解:

- @Api()用于類;

表示标識這個類是swagger的資源

- @ApiOperation()用于方法;

表示一個http請求的操作

- @ApiParam()用于方法,參數,字段說明;

表示對參數的添加元數據(說明或是否必填等)

- @ApiModel()用于類

表示對類進行說明,用于參數用實體類接收

- @ApiModelProperty()用于方法,字段

表示對model屬性的說明或者數據操作更改

- @ApiIgnore()用于類,方法,方法參數

表示這個方法或者類被忽略

- @ApiImplicitParam() 用于方法

表示單獨的請求參數

- @ApiImplicitParams() 用于方法,包含多個 @ApiImplicitParam

具體使用舉例說明:

@Api()

用于類;表示标識這個類是swagger的資源

tags–表示說明

value–也是說明,可以使用tags替代

但是tags如果有多個值,會生成多個list

@Api(value="用戶controller",tags={"用戶操作接口"}) @RestController public class UserController { }

效果圖:

swagger動态注解(常用注解使用詳解)2

@ApiOperation() 用于方法;表示一個http請求的操作

value用于方法描述

notes用于提示内容

tags可以重新分組(視情況而用)

@ApiParam() 用于方法,參數,字段說明;表示對參數的添加元數據(說明或是否必填等)

name–參數名

value–參數說明

required–是否必填

@Api(value="用戶controller",tags={"用戶操作接口"}) @RestController public class UserController { @ApiOperation(value="獲取用戶信息",tags={"獲取用戶信息copy"},notes="注意問題點") @GetMapping("/getUserInfo") public User getUserInfo(@ApiParam(name="id",value="用戶id",required=true) Long id,@ApiParam(name="username",value="用戶名") String username) { // userService可忽略,是業務邏輯 User user = userService.getUserInfo(); return user; } }

效果圖:

swagger動态注解(常用注解使用詳解)3

@ApiModel()用于類 ;表示對類進行說明,用于參數用實體類接收

value–表示對象名

description–描述

都可省略

@ApiModelProperty()用于方法,字段; 表示對model屬性的說明或者數據操作更改

value–字段說明

name–重寫屬性名字

dataType–重寫屬性類型

required–是否必填

example–舉例說明

hidden–隐藏

@ApiModel(value="user對象",description="用戶對象user") public class User implements Serializable{ private static final long serialVersionUID = 1L; @ApiModelProperty(value="用戶名",name="username",example="xingguo") private String username; @ApiModelProperty(value="狀态",name="state",required=true) private Integer state; private String password; private String nickName; private Integer isDeleted; @ApiModelProperty(value="id數組",hidden=true) private String[] ids; private List<String> idList; //省略get/set }

@ApiOperation("更改用戶信息") @PostMapping("/updateUserInfo") public int updateUserInfo(@RequestBody @ApiParam(name="用戶對象",value="傳入json格式",required=true) User user){ int num = userService.updateUserInfo(user); return num; }

效果圖:

swagger動态注解(常用注解使用詳解)4

swagger動态注解(常用注解使用詳解)5

@ApiIgnore()用于類或者方法上,可以不被swagger顯示在頁面上

比較簡單, 這裡不做舉例

@ApiImplicitParam() 用于方法

表示單獨的請求參數

@ApiImplicitParams() 用于方法,包含多個 @ApiImplicitParam

name–參數ming

value–參數說明

dataType–數據類型

paramType–參數類型

example–舉例說明

@ApiOperation("查詢測試") @GetMapping("select") //@ApiImplicitParam(name="name",value="用戶名",dataType="String", paramType = "query") @ApiImplicitParams({ @ApiImplicitParam(name="name",value="用戶名",dataType="string", paramType = "query",example="xingguo"), @ApiImplicitParam(name="id",value="用戶id",dataType="long", paramType = "query")}) public void select(){ }

效果圖:

swagger動态注解(常用注解使用詳解)6

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved