@EnableOpenApi
该注解添加在Spring Boot
项目的启动类上,然后在整个项目上使用Swagger3
了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package com.ledao;
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.oas.annotations.EnableOpenApi;
@EnableOpenApi @SpringBootApplication public class SwaggerTestApplication {
public static void main(String[] args) { SpringApplication.run(SwaggerTestApplication.class, args); }
}
|
@Api
添加在Controller
类上,有两个参数:
tags
:说明该类的作用,可以在UI
界面上看到的注解
value
:该参数没什么意义,在UI
界面上也看到,所以不需要配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package com.ledao.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody;
@Api(tags = "首页Controller") @Controller public class IndexController {
}
|
@ApiOperation
添加在在Controller
类的方法上,有两个参数:
value
:说明方法的用途、作用
notes
:方法的备注说明
1 2 3 4 5 6
| @ApiOperation(value = "跳转到首页") @ResponseBody @GetMapping("/") public String root() { return "<a href='http://localhost:8080/student/delete?id=2'>删除学生</a>"; }
|
@ApiImplicitParams
用在请求的方法上,表示一组参数说明,结合注解@ApiImplicitParam
一起使用
@ApiImplicitParam
该注解用在@ApiImplicitParams
内,该注解的参数如下:
name
:参数名
value
:参数的汉字说明、解释
required
:参数是否必须传
paramType
:参数放在哪个地方
.header
请求参数的获取:@RequestHeader
.query
请求参数的获取:@RequestParam
.path
用于restful
接口,请求参数的获取:@PathVariable
.div
不常用
.form
不常用
dataType
:参数类型,默认String
,其它值dataType="Integer"
defaultValue
:参数的默认值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
@ApiOperation(value = "添加学生") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "编号", required = true), @ApiImplicitParam(name = "name", value = "姓名", required = true), @ApiImplicitParam(name = "age", value = "年龄", required = true) }) @GetMapping("/add") public Student add(Integer id, String name, Integer age) { return new Student(id, name, age); }
|
@ApiResponses
用在请求的方法上,表示一组响应码,结合注解@ApiResponse
一起使用
@ApiResponse
用在@ApiResponses
中,一般用于表达一个错误的响应信息,参数如下:
code
:数字,例如400
message
:信息,例如”请求参数没填好“
response
:抛出异常的类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
@ApiOperation(value = "添加学生") @ApiResponses({ @ApiResponse(code = 408, message = "指定业务得报错信息,返回客户端"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对") }) @GetMapping("/add") public Student add(Integer id, String name, Integer age) { return new Student(id, name, age); }
|
@ApiModel
用于实体类上,表示一个返回响应数据的信息,参数value
填该实体类的作用
这种一般用在post
创建的时候,使用@RequestBody
这样的场景,请求参数无法使用@ApiImplicitParam
注解进行描述的时候
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package com.ledao.entity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty;
@ApiModel(value = "学生实体类") public class Student {
}
|
@ApiModelProperty
该注解添加在实体类的属性上,描述实体类的属性,参数value
填参数的作用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| package com.ledao.entity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty;
@ApiModel(value = "学生实体类") public class Student {
@ApiModelProperty(value = "编号") private Integer id;
@ApiModelProperty(value = "姓名") private String name;
@ApiModelProperty(value = "年龄") private Integer age; }
|