介绍一下 SpringFox:

Automated JSON API documentation for API’s built with Spring

翻译:使用 Spring 构建的 API 的自动化 JSON API 文档

代码

maven 依赖项目 注意Boot项目版本是2.5.13

    <!--声明依赖版本-->
    <properties>
        <swagger.version>3.0.0</swagger.version>
        <knife4f.version>3.0.3</knife4f.version>
    </properties>
    <dependencies>
        <!-- swagger2 可以通过  项目名称+/swagger-ui.html 访问具体页面-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>${swagger.version}</version>
        </dependency>
        <!-- API获取的包 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.version}</version>
        </dependency>
        <!-- 官方UI包 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>${knife4f.version}</version>
        </dependency>
    </dependencies>

配置类

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * @Author: zanglikun
 * @Date: 2022/3/1 15:48
 * @Description: 新版本的Swagger3 接口文档地址变为 http://127.0.0.1/swagger-ui/index.html 而不是swagger-ui.html
 */

@Configuration
@EnableOpenApi
@EnableKnife4j
@Slf4j
public class NewSwagger {

    @Bean
    public Docket createRestApi() {
        log.info("开始加载Swagger...");
        return new Docket(DocumentationType.OAS_30)
                .enable(true)
                .apiInfo(apiInfo())
                .select()
                .apis( RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //这里是自动匹配注解以显示接口文档
                //.apis(RequestHandlerSelectors.basePackage("com.xunliao")) //这里是指定包来显示其下带有注解的接口文档
//可以选择线上使用某位置 详见 https://www.zanglikun.com/1640.html#@Profile
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("枕聊App新版 接口文档")//标题
                .description("更多请咨询服务开发者,反馈前:请检查ip、端口、接口名是否有效")//描述
                //附加信息
                .contact(new Contact("Java开发团队", "https://www.zanglikun.com", "no@email.com"))
                .version("1.0")//版本
                .build();
    }

}

配置完成之后 即可访问

注意:swagger3 对比 swagger2

接口文档地址变为 http://127.0.0.1/swagger-ui/index.html 而不是2.0的swagger-ui.html

其他问题

Swagger升级到3.x后,原来的MultipartFile在文档调试中,没有此字段了,所以需要我们在字段上追加注解 @RequestPart(“”)

    public Results doUpUserAvatar(String account,@RequestPart("multipartFile") MultipartFile multipartFile) {
        return infoService.doUpUserAvatar(account, multipartFile);
    }

注意:Swagger3.0提供了新的注解

swagger2OpenAPI 3注解位置
@Api@Tag(name = “接口类描述”)Controller 类上
@ApiOperation@Operation(summary =“接口方法描述”)Controller 方法上
@ApiImplicitParams@ParametersController 方法上
@ApiImplicitParam@Parameter(description=“参数描述”)Controller 方法上 @Parameters 里
@ApiParam@Parameter(description=“参数描述”)Controller 方法的参数上
@ApiIgnore@Parameter(hidden = true) 或 @Operation(hidden = true) 或 @Hidden
@ApiModel@SchemaDTO类上
@ApiModelProperty@SchemaDTO属性上

即便引入3.0是否可以使用2.0注解有待考证

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源