<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>
를 통합합니다. 참고: 현재 SpringBoot 버전은 2.5.6이고 Swagger3.0은 현재 SpringBoot2.6.x와 완전히 호환되지 않습니다!
@RestController @RequestMapping("test") public class TestController { @GetMapping public Map<String, Object> get(@RequestParam String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } @PostMapping public Map<String, Object> post() { Map<String, Object> r = new HashMap<>(1); r.put("code", 200); return r; } @PutMapping public Map<String, Object> put(String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } @DeleteMapping public Map<String, Object> delete(String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } }
@Configuration @EnableOpenApi public class SwaggerConfig { private static final String VERSION = "0.0.1"; @Bean public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) .groupName("分组名称") .apiInfo(apiInfo()) .select() //要扫描的包 .apis(RequestHandlerSelectors.basePackage("com.example.swagger.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() // 设置标题 .title("文档标题") //联系人 .contact(contact()) //描述 .description("xxx文档") //服务 .termsOfServiceUrl("https://spring.io/") //许可证 .license("Apache 2.0") .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0") .version(VERSION) .build(); } private Contact contact (){ return new Contact("SpringBoot", "https://spring.io/", "email"); } }
Annotation | Function | 위치 사용 |
---|---|---|
@Api | 는 예라고 말합니다. 설명 공통 매개변수 | Class |
@ApiOperation | 메서드의 목적을 설명하세요 | Method |
@ApiImplicitParams | 여러 개의 @ApiImplicitParam | method |
@ApiImplicitParam | 설명 매개변수의 목적 | method |
@ApiModel | 은 데이터 클래스의 정보를 나타냅니다. | class |
@ApiModelProperty | 데이터 클래스의 속성을 설명합니다 | attributes |
@Api 무시 | 문서에 표시되지 않도록 누군가 필드를 무시하세요 | 속성 |
1. 새로운 사용자 엔터티 클래스를 생성하세요
@ApiModel("用户") @Data public class User { @ApiModelProperty("用户名") private String username; @ApiModelProperty("密码") private String password; }
2. TestController에 주석을 추가하세요
@Api(tags = "测试接口") @RestController @RequestMapping("test") public class TestController { @ApiOperation("get请求") @GetMapping @ApiImplicitParam(name = "id", value = "测试用id", dataTypeClass = String.class) public Map<String, Object> get(@RequestParam String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } @ApiOperation("post请求") @PostMapping public Map<String, Object> post(@RequestBody User user) { Map<String, Object> r = new HashMap<>(1); r.put("code", 200); return r; } @ApiOperation("put请求") @PutMapping @ApiImplicitParam(name = "id", value = "put请求id", dataTypeClass = String.class) public Map<String, Object> put(String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } @ApiOperation("delete请求") @DeleteMapping @ApiImplicitParam(name = "id", value = "delete请求id", dataTypeClass = String.class) public Map<String, Object> delete(String id) { Map<String, Object> r = new HashMap<>(1); r.put("id", id); return r; } }
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-micro-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
SwaggerConfig 클래스에 **@EnableKnife4j** 추가
@Configuration @EnableOpenApi @EnableKnife4j public class SwaggerConfig
위 내용은 springboot가 swagger3와 Knife4j를 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!