Swagger-springDoc基础使用

作者: gu_lao_rou-p 分类: springBoot 发布时间: 2022-02-07 22:04

步骤:

  1. 添加maven配置
  2. 添加配置文件
  3. controller文件给接口添加注释
  4. 基础注解

maven配置:

<!--swagger-ui-->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.5.12</version>
        </dependency>

添加配置文件:

package com.resume.uniapp.util;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springdoc.core.GroupedOpenApi;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
 * springDoc-swagger标准配置
 *
 * @author huang cheng
 * 2021/8/13
 */
@Configuration
public class SpringDocSwaggerConfig {
   
    private static final String basePackage = "com.resume.uniapp.controller";//需要扫描api路径,修改成自己controller文件的路径
    private static final String headerName = "Authorization";//请求头名称

    @Bean
    public GroupedOpenApi usersGroup() {
        return GroupedOpenApi.builder()
                .group("users")
                .addOperationCustomizer((operation, handlerMethod) -> {
                    operation.addSecurityItem(new SecurityRequirement().addList(headerName));
                    return operation;
                })
                .packagesToScan(basePackage)
                .build();
    }

    @Bean
    public OpenAPI customOpenAPI() {
        Components components = new Components();
        //添加右上角的统一安全认证
        components.addSecuritySchemes(headerName,
                new SecurityScheme()
                        .type(SecurityScheme.Type.APIKEY)
                        .scheme("basic")
                        .name(headerName)
                        .in(SecurityScheme.In.HEADER)
                        .description("请求头")
        );

        return new OpenAPI()
                .components(components)
                .info(apiInfo());
    }

    private Info apiInfo() {
        Contact contact = new Contact();
        contact.setEmail("1003816735@qq.com");
        contact.setName("cheng");
        contact.setUrl("https://blog.csdn.net/qq_42495847?spm=1000.2115.3001.5343");
        return new Info()
                .title("sunnyDay-swagger文档")
                .version("1.0")
                .contact(contact)
                .description("博客请关注:https://blog.csdn.net/qq_42495847?spm=1000.2115.3001.5343")
                .license(new License().name("Apache 2.0").url("http://springdoc.org"));
    }

}

注意⚠️:

修改路径,controller路径和此文件路径

controller层添加注释:

package com.resume.uniapp.controller;

import com.resume.uniapp.domain.UserInfo;
import com.resume.uniapp.req.UserInfoRegisterReq;
import com.resume.uniapp.service.UserInfoService;
import com.resume.uniapp.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@Tag(name = "用户基本信息")
@RestController
@RequestMapping("/user")
public class UserInfoController {

    @Resource
    private UserInfoService userService;

    @Operation(summary = "查询全部数据")
    @GetMapping("/selectAll")
    public R selectAll(){
        R r = new R();
        r.setData(userService.selectAll());
        return r;
    }

    @Operation(summary = "根据id查询一条数据")
    @GetMapping("/selectById")
    public R selectById(int id){
        R r = new R();
        r.setData(userService.selectById(id));
        return r;
    }

    @Operation(summary = "增加一条数据")
    @PostMapping("/addUserInfo")
    public R addUserInfo(@RequestBody UserInfo req){
        R r = new R();
        userService.addUserInfo(req);
        return r;
    }

    @Operation(summary = "修改一条数据")
    @PostMapping("/editUserInfo")
    public R editUserInfo(@RequestBody UserInfo req){
        R r = new R();
        userService.editUserInfo(req);
        return r;
    }

    @Operation(summary = "根据id删除一条数据")
    @GetMapping("/delUserInfoById")
    public R delUserInfoById(int id) {
        R r = new R();
        userService.delUserInfoById(id);
        return r;
    }

    @Operation(summary = "根据name和email获取一行的id")
    @GetMapping("/register")
    public R register(UserInfoRegisterReq req){
        R r = new R();
        r.setData(userService.register(req));
        return r;
    }
}

springdoc基于swagger3注解

swagger3 注解位置
@Tag(tags = “接口类描述”) Controller 类上
@Operation(summary =“接口方法描述”) Controller 方法上
@Parameters Controller 方法上
@Parameter(description=“参数描述”) Controller 方法上 @Parameters 里
@Parameter(description=“参数描述”) Controller 方法的参数上
@Parameter(hidden = true) 或 @Operation(hidden = true) 或 @Hidden –
@Schema(description = “dto类描述”) DTO类上
@Schema(description = “属性描述”) DTO属性上

原网址:https://blog.csdn.net/qq_42495847/article/details/121424240


Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 26

Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 27

Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 28
标签云