Heim > Java > javaLernprogramm > Wie Springboot Swagger3 und Knife4j integriert

Wie Springboot Swagger3 und Knife4j integriert

王林
Freigeben: 2023-05-19 12:49:06
nach vorne
2069 Leute haben es durchsucht

springboot integrierter Swagger3

swagger3 Springboot Launcher Jar-Paket

<!-- 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>
Nach dem Login kopieren

Hinweis: Die aktuelle SpringBoot-Version ist 2.5.6, Swagger3.0 derzeit nicht verfügbar Voll kompatibel mit SpringBoot2.6.x!

TestController-Code schreiben

@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;
    }
}
Nach dem Login kopieren

Swagger3Configuration erstellen

@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");
    }
}
Nach dem Login kopieren

Annotieren Sie die Schnittstelle

Allgemein in der Prahlerei verwendet Anmerkung
# 🎜🎜#@ApiStellt allgemeine Parameter dar, die die Klasse beschreibenKlasse #🎜 🎜#@ApiOperation@ApiImplicitParams# 🎜🎜# kann mehrere enthalten Beschreibung Zweck von ParameterMethode@ApiModelRepräsentiert Informationen einer DatenklasseBeschreibt die Eigenschaften der Datenklasse#🎜🎜 #@ApiIgnoreEin Feld ignorieren, damit es nicht im Dokument erscheint Attribute#🎜 🎜 #Grundlegende Verwendung der Schnittstelle1 Erstellen Sie eine neue Benutzerentitätsklasse
@ApiModel("用户")
@Data
public class User {
    @ApiModelProperty("用户名")
    private String username;
    @ApiModelProperty("密码")
    private String password;
}
Nach dem Login kopieren
2. Fügen Sie Anmerkungen zu TestController hinzu
AnmerkungFunktionStandort verwenden
Beschreiben Sie den Zweck der MethodeMethode
#🎜 🎜# Klasse@ApiModelProperty
Attribute
@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;
    }
}
Nach dem Login kopieren
#🎜🎜 #Laufergebnisse
# 🎜🎜 #Integration ist besser UI-knife4j

maven

<dependency>
   <groupId>com.github.xiaoymin</groupId>
   <artifactId>knife4j-micro-spring-boot-starter</artifactId>
   <version>3.0.3</version>
</dependency>
Nach dem Login kopieren

launcher
Fügen Sie **@EnableKnife4j**

@Configuration
@EnableOpenApi
@EnableKnife4j
public class SwaggerConfig
Nach dem Login kopieren
zur SwaggerConfig-Klasse hinzu

Das obige ist der detaillierte Inhalt vonWie Springboot Swagger3 und Knife4j integriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage