>  기사  >  Java  >  SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

WBOY
WBOY앞으로
2023-05-17 09:40:381035검색

    1. Swagger 좌표 종속성 가져오기

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${swagger.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${swagger.version}</version>
    </dependency>

    가장 일반적으로 사용되는 버전은 2.9.2

    2. @EnableSwagger2 주석을 스프링 시작 클래스에 추가합니다

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    springfox에서 제공하는 @EnableSwagger2 주석 swagger2 관련 기술을 활성화할 수 있습니다. 프로그램은 현재 클래스의 패키지 및 하위 패키지에 있는 모든 유형을 탐색하여 Swagger와 관련된 주석을 찾고 Swagger 문서를 사용자 정의합니다

    3. 프로젝트를 시작하고 swaggerui.html 인터페이스를 봅니다

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    사용해보기를 클릭하여 해당 매개변수를 입력하면 반환 결과를 볼 수 있습니다

    넷째, SwaggerConfig 구성 파일을 작성합니다

    @EnableSwagger2
    @Configuration
    public class SwaggerConfig {
        @Autowired
        private ApplicationContext applicationContext;
    
        private Contact contact = new Contact("NIUA","localhost:8080/swagger-ui.html", "1053288979@qq.com");
    
        @Bean
        public Docket createRestApi() {
            ServletContext servletContext = applicationContext.getBean(ServletContext.class);
            return new Docket(DocumentationType.SWAGGER_2)
                    .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(Predicates.not(regex("/error.*")))
                    .build()
                    .apiInfo(apiInfo());
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("平台接口 v1.0")
                    .description("平台接口")
                    .contact(contact)
                    .version("1.0")
                    .build();
        }
    }
    @Bean
        public Docket createRestApi() {
            ServletContext servletContext = applicationContext.getBean(ServletContext.class);
            return new Docket(DocumentationType.SWAGGER_2)
                    .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(Predicates.not(regex("/error.*")))
                    .build()
                    .apiInfo(apiInfo());
        }

    Docker 유형 개체를 생성하고 스프링 컨테이너 관리를 사용합니다. Docker는 Swagger의 전역 구성 개체입니다.

    DocketationType.SWAGGER_2를 사용하여 Docket의 클래스 개체를 지정하여 어떤 버전이 사용되는지 확인합니다.

    apiInfo(): API 문서의 설명 정보, 매개변수는 ApiInfo 클래스 개체, 사용 bulid()

    private ApiInfo apiInfo() {
           return new ApiInfoBuilder()
                   .title("平台接口 v1.0")
                   .description("平台接口")
                   .contact(contact)
                   .version("1.0")
                   .build();
       }

    contact() 생성을 위한 빌더: 클래스 객체이기도 한 Swagger 문서의 주요 콘텐츠를 구성합니다. 클래스 객체는 최대 3개의 매개변수, 출판사 이름, 문서 게시자의 웹사이트 URL 주소( 기업 홈페이지), 문서 게시자의 이메일 주소

    private Contact contact = new Contact("NIUA","localhost:8080/swagger-ui.html", "1053288979@qq.com");

    title(): 제목 설명(): 설명 정보.version(): 버전 정보

    다음 내용에 해당

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    반환 방법 ApiSelectorBuilder는 select()이며 Docker에서 선택기를 가져오는 데 사용됩니다. 선택기를 빌드합니다. 예를 들어 스캔할 패키지에 대한 주석은

    apis(): 스캔할 해당 패키지의 주석을 규정하는 RequestHandlerSelectors 클래스 아래의 (Predicate) 규칙입니다. 기본값은 시작 클래스 및 해당 클래스의 주석입니다. 하위 패키지

    RequestHandlerSelectors 클래스 아래에는 몇 개가 있습니까? 정적 메서드(예 3개)

    basePackage(): 나중에 패키지 이름의 특정 주소와 수정된 패키지 및 해당 하위 패키지의 주석을 입력합니다.

    docker.apis(RequestHandlerSelectors.basePackage("com.xxx"))

    any(): 모든 인터페이스에 대한 API 문서 생성

    none(): 모든 인터페이스에 대한 인터페이스 문서가 생성되지 않습니다.

    path(): 정규식을 사용하여 생성된 Api의 경로 주소를 제한합니다. 문서를 작성한 다음 필터링된(통과된) 경로를 입력하세요

    //过滤掉admin路径下的所有页面
    .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
    //过滤掉所有error或error.*页面
    .paths(Predicates.not(PathSelectors.regex("/error.*")))
    
    //所有error或error.*页面或者admin路径下的所有页面都支持(or任意满足起一就通过)
    .paths(Predicates.or(PathSelectors.regex("/error.*"),PathSelectors.regex("/admin/.*")))

    Five: Swagger는 여기에 사용자 정의 주석을 지원합니다.

    여기에 언급되지 않았습니다. 관심이 있는 경우 직접 검색할 수 있습니다. 미래)

    Six: Swagger2 공통 주석

    @Api(일반적으로 사용됨)

    Function: @Api는 클래스에 대한 주석입니다. 전체 클래스

    속성:

    태그: 클래스 이름에서 생성되는 인터페이스 정보의 내용을 제어합니다. 여러 값이 있는 경우, 즉 사용 가능한 복사본(별칭)이 여러 개 있음을 의미하는 경우 SwaggerUI 보기에는 메뉴에 액세스할 수 있는 컨트롤러가 표시됩니다.

    Function

    : @ApiOperation은 메소드에 대한 주석으로, 메소드의 관련 정보를 설명합니다

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명Attributes

    :

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명value: 메소드 설명 function

    notes: 메소드 노트(설명 확장)

    @ApiParm

    FunctionSpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명: @ApiParm은 메서드 매개변수에 대한 주석입니다. 매개변수 설명

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명attribute

    :

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명이름: 매개변수 이름

    값: 매개변수 기능 설명

    required: 값은 매개변수가 필수 매개변수인지 여부를 나타내는 부울 유형이며, 기본값은 false

    입니다.

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    @ApiIgnore

    作用:@ApiParm是方法或者参数的注解。忽略注解的方法或者参数,不生成帮助文档

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    @ApiImplicitParam(常用)

    作用@ApiParm是作用于类上方法,用来描述方法参数的注解。

    属性

    name:参数名称,和方法的参数一致

    value:参数具体描述

    required:值为boolean类型,表示该参数是否为必要参数,默认为false

    paramType:参数类型

    paramType="字符串"
    paramType = "header"

    dataType:数据类型

    dataType = "string"  //字符串数据
    dataType = "键值对"

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    @ApiImplicitParams

    后面跟@ApiImplicitParam的集合,一般用于多个参数的描述

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", value = "Authorization token", required = true, dataType = "string", paramType = "header")})

    @ApiModel(常用)

    作用@ApiModel是作用于实体类上,描述一个实体类型,整个实体类型如果成为任何一个生成api帮助文档的返回对象的时候,该注解被解析

    属性

    value:实体类名称

    description:实体类描述

    @ApiModelProperty(常用)

    作用@ApiModel是作用于实体类的属性上,描述实体类属性

    属性

    value:实体属性描述

    name:实体类属性名字,与属性名一致

    SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명

    위 내용은 SpringBoot 프로젝트에서 Swagger2를 사용하는 방법과 주석 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제