Spring Cloud Alibaba微服务全局集成swagger2

本文介绍了如何将Swagger2与Spring Cloud Gateway进行集成,使用Knife4jCloud提供美观的API文档界面。详细步骤包括在Gateway中配置SwaggerResourceConfig和SwaggerHandler,以及在微服务模块中集成Swagger。提醒读者,此配置仅适用于dev、test和local环境,不适合生产环境。源码可供参考。
摘要由CSDN通过智能技术生成

官方文档

这里采用的是Knife4jCloud的方案,比起之前的springfox的方案,界面UI更加美观,交互操作更简洁,但官方文档集成的是spring cloud gateway和eurake的方案,我这里集成了Nacos
Knife4jCloud文档
有兴趣可以自行阅读

Spring Cloud Gateway集成

1、增加SwaggerResourceConfig

package vip.mate.gateway.config;


import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import springfox.documentation.swagger.web.SwaggerResource;
import springfox.documentation.swagger.web.SwaggerResourcesProvider;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Slf4j
@Component
@Primary
@AllArgsConstructor
public class SwaggerResourceConfig implements SwaggerResourcesProvider {
   

    /**
     * swagger2默认的url后缀
     */
    private static final String SWAGGER2URL = "/v2/api-docs";

    /**
     * 网关路由
     */
    private final RouteLocator routeLocator;

    /**
     * 网关应用名称
     */
    @Value("${spring.application.name}")
    private String self;

    @Autowired
    public SwaggerResourceConfig(RouteLocator routeLocator) {
   
        this.routeLocator = routeLocator;
    }

    @Override
    public List<SwaggerResource> get() {
   
        List<SwaggerResource> resources = new ArrayList<>();
        
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值