SpringBoot使用優化之-----Swagger2使用(線上介面文件)
阿新 • • 發佈:2019-02-01
1. 引入依賴
<!--swagger2依賴--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency>
2. 新增配置
創建於主程式類同級的Swagger2 類
內容如下
@Configuration //標記配置類 @EnableSwagger2 //開啟線上介面文件 public class Swagger2 { @Bean public Docket createRestfulApi() {//api文件例項 return new Docket(DocumentationType.SWAGGER_2)//文件型別:DocumentationType.SWAGGER_2 .apiInfo(apiInfo())//api資訊 .select()//構建api選擇器 .apis(RequestHandlerSelectors.basePackage("com.example.demo.Controller"))//api選擇器選擇api的包 .paths(PathSelectors.any())//api選擇器選擇包路徑下任何api顯示在文件中 .build();//建立文件 } private ApiInfo apiInfo() {//介面的相關資訊 return new ApiInfoBuilder() //頁面標題 .title("Spring Boot中使用Swagger2構建RESTful介面") //描述 .description("介面描述") .termsOfServiceUrl("termsOfServiceUrl") //建立人 .contact(new Contact("Mr.sun", null, null)) //版本號 .version("1.0") .build(); } }
注意更改與自己專案相符合的api路徑
下面的ApiInfo顯示效果如下
3. 編寫介面文件
@Api(tags="使用者資訊管理系統",value = "使用者資訊管理") @Controller @RequestMapping(value = "/user") public class UserController { @Autowired private UserService userService; @ResponseBody @RequestMapping(value = "/select",method = RequestMethod.GET) @ApiOperation(value = "查詢所有使用者",notes = "使用者資訊") public Object selectAllUser(){ return userService.findAllUser(); } @ResponseBody @RequestMapping(value = "/selectByid",method = RequestMethod.POST) @ApiOperation(value = "根據id查詢使用者資訊",notes = "id為string型別") @ApiImplicitParam(name = "user", value = "單個使用者資訊", dataType = "User") public User selectByid(String id){ return userService.selectByid(id); } }
以上配置顯示效果如下。
可以根據自己的需要增加 具體說明如下
//@Api:用在請求的類上,表示對類的說明
// tags="說明該類的作用,可以在UI介面上看到的註解"
// value="該引數沒什麼意義,在UI介面上也看到,所以不需要配置"
//
//@ApiOperation:用在請求的方法上,說明方法的用途、作用
// value="說明方法的用途、作用"
// notes="方法的備註說明"
//
//@ApiImplicitParams:用在請求的方法上,表示一組引數說明
//@ApiImplicitParam:用在@ApiImplicitParams註解中,指定一個請求引數的各個方面
// name:引數名
// value:引數的漢字說明、解釋
// required:引數是否必須傳
// paramType:引數放在哪個地方
// · header --> 請求引數的獲取:@RequestHeader
// · query --> 請求引數的獲取:@RequestParam
// · path(用於restful介面)--> 請求引數的獲取:@PathVariable
// · body(不常用)
// · form(不常用)
// dataType:引數型別,預設String,其它值dataType="Integer"
// defaultValue:引數的預設值
//
//@ApiResponses:用在請求的方法上,表示一組響應
//@ApiResponse:用在@ApiResponses中,一般用於表達一個錯誤的響應資訊
// code:數字,例如400
// message:資訊,例如"請求引數沒填好"
// response:丟擲異常的類
//
//@ApiModel:用於響應類上,表示一個返回響應資料的資訊
// (這種一般用在post建立的時候,使用@RequestBody這樣的場景,
// 請求引數無法使用@ApiImplicitParam註解進行描述的時候)
//@ApiModelProperty:用在屬性上,描述響應類的屬性