SpringBoot集成swagger相关问题整理

1,298 阅读1分钟

swagger不显示API列表问题

  1. 问题描述

  • 打开浏览器控制台发现有springfox.js报错。发下如下图75行出现Json解析错误。排查发现 Js解析Json层数不对。

Snipaste_2019-10-08_18-46-21.png

方案

修改springboot Json序列化格式

  1. 添加pom (gson 和如下jar)

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.11</version>
        </dependency>
          <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>
  1. 配置序列化
package com.wh.config;

import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import springfox.documentation.spring.web.json.Json;

import java.lang.reflect.Type;


public class SpringfoxJsonToGsonAdapter implements JsonSerializer<Json> {

    @Override
    public JsonElement serialize(Json json, Type type, JsonSerializationContext context) {
        final JsonParser parser = new JsonParser();
        return parser.parse(json.value());
    }
}

访问swagger-ui界面404

检查下pom文件 是否少引用ui包

  <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.8.0</version>
  </dependency>

swagger出现弹窗

image.png

解决办法: 在启动的类上加上@EnableSwagger2注解