美文网首页管理后台系统我的技术体系
swagger-ui升级到knife4j,带给你新的体验

swagger-ui升级到knife4j,带给你新的体验

作者: 求索 | 来源:发表于2020-02-29 23:05 被阅读0次

在前后端大行其道的时代,项目不引入swagger都out了。花了一下午把swagger集成到项目中,并定义了接口信息,然而UI界面看着很不爽,看着一定都不专业。

api接口文档.png

knife4j

knife4j是springfox-swagger的增强UI实现,为Java开发者在使用Swagger的时候,能拥有一份简洁、强大的接口文档体验。

简书浏览时看到一大牛介绍knife4j,觉得效果不错,决定把项目升级到knife4j。

首先引入POM:

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.1</version>
    <exclusions>
        <exclusion>
            <groupId>io.springfox</groupId>
            <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
            <groupId>io.swagger</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

这里排除io.springfox和io.swagger两个包主要时为了防止jar包依赖冲突,前面已经引用了swagger-starter。

然后修改配置:

@EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer {
      // ... 这里省略 swagger api 基础配置信息
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

可以看到修改配置的主要目的时添加新的静态资源,保证springmvc会到指定资源目录加载knife4j 的前端资源文件。

最后将新增加的资源路径配置为可匿名访问,这里使用的是shiro安全框架,具体配置如下:

 chain.put("/doc.html", "anon");
 chain.put("/swagger-ui.html", "anon");

最后验证下效果:

knife4j接口文档.png

虽然有点简单,但还是有点小成就。

  • 在测试时,knife4j测试结果不更新
  • 使用代理时最近了一级目录,首页地址正常,但是测试接口不能自动追加。

相关文章

网友评论

    本文标题:swagger-ui升级到knife4j,带给你新的体验

    本文链接:https://www.haomeiwen.com/subject/wllwhhtx.html