SpringBoot项目实战(二十三篇):整合Swagger2构建强大的Restful Api接口文档(二)

作者:方雷
个人博客:http://blog.chargingbunk.cn/
微信公众号:rayson_666(Rayson开发分享)
个人专研技术方向:

  • 微服务方向:springboot, springCloud, Dubbo
  • 分布式/高并发: 分布式锁, 消息队列RabbitMQ
  • 大数据处理: Hadoop, spark, HBase等
  • python方向: python web开发

喜欢的朋友们可以关注我的简书或微信公众号(rayson_666), 一起交流学习, 后期会不断更新有经验的干货.

一,前言

承接上一篇SpringBoot项目实战(二十三篇):整合Swagger2构建强大的Restful Api接口文档(一)整合Swagger搭建步骤还是很简单,但是往往再真实的环境中总会出现各种奇葩的问题, 让我们很头疼。

image.png

二,踩坑小记

接下来我就分享一个出现问题的场景,并分析其背后造成的原因是什么。

出现如下问题:
访问swagger-ui.html始终出现找不到页面

如果仅仅是按照上一篇来搭建的话, 是很成功的,不会出现任何问题。那么我还是复现一下问题场景,看大家是否有出现跟我一样的场景。

复现一下问题场景:
1. 新建WebConfig配置类

package cn.rayson.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 该类再项目中的作用可以添加拦截器, 以及跨域配置, 而且可以说在项目中不可缺少,占有很重要的地位
 * 
 * @author 方雷(Rayson)
 * @微信公众号: rayson_666(Rayson开发分享) 、
 * 分享springBoot springCloud技术, 以及python,大数据学习系列
 * @个人博客: http://blog.chargingbunk.cn/
 * @简书: https://www.jianshu.com/u/5b0de5c8dc56
 * 2018年6月9日
 */
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
    
    /**
     * 此方法是用来注册跨域的
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // TODO Auto-generated method stub
        super.addCorsMappings(registry);
    }
    
    /**
     * 此方法是用来注册拦截器的
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // TODO Auto-generated method stub
        super.addInterceptors(registry);
    }
    
    /**
     * 此方法是用来添加静态资源映射的
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // TODO Auto-generated method stub
        super.addResourceHandlers(registry);
    }
    
}

如上代码就是我创建好的WebConfig配置类, 并继承WebMvcConfigurerAdapter, @EnableWebMvc 用于启用Spring MVC的。

然后直接启动项目,然后我们来访问一下http://localhost:8080/swagger-ui.html,结果出现了Whitelabel Error Page

image.png

那么问题出现了, 我们接下来就分享下解决方案。

2.分析问题原因及解决方案

问题的原因:

如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。 需要重新指定静态资源

解决方案:

    /**
     * 此方法是用来添加静态资源映射的
     * 发现如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。 需要重新指定静态资源
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/**").addResourceLocations(
                    "classpath:/static/");
            registry.addResourceHandler("swagger-ui.html").addResourceLocations(
                    "classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations(
                    "classpath:/META-INF/resources/webjars/");
        super.addResourceHandlers(registry);
    }
    

配置好了过后, 重新访问swagger-ui.html就可以访问成功


image.png

三,总结

我不如地狱谁入地狱。大家有没有觉得如果api接口文档中包含大量的接口文档, 而且一直是上下滚动,不方便查看和翻阅。所以下一篇后续会介绍基于swagger左右布局的swagger-ui框架。

参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容