springcloud整合swagger统一服务api(代码片段)

风某人~Wind 风某人~Wind     2022-12-12     463

关键词:

Swagger整合多个微服务统一API接口文档

单系统Spring Boot 整合Swagger或者 Swagger注解介绍 请看另一篇文章

Swagger(丝袜哥) 快速入门(超详细介绍)

准备工具

1.  自己搭建准备好微服务环境

2. 里面至少包含一个注册中心,一个网关,两个其他服务

当前演示的测试环境配置

1个注册中心(eureka)、1个网关(zuul)、和user-consumer、user-provider 两个服务

开搞!

1. 引入依赖

在除了注册中心里面的所有的服务都引入依赖

<!--引入swagger API服务-->
        <dependency>
            <groupId>com.spring4all</groupId>
            <artifactId>swagger-spring-boot-starter</artifactId>
            <version>1.9.0.RELEASE</version>
        </dependency>

2. 配置网关

在网关的服务下,创建DocumentationConfig 类

在get() 方法中,List里面添加需要展示API接口的服务

resources.add(swaggerResource("分组名称", "/服务名称/v2/api-docs", "版本号"));
/**
 * @Auther: wan
 * @Date: 2021/4/8 16:12
 * @Description:
 * @version: 1.0
 */
@Component
@Primary
public class DocumentationConfig  implements SwaggerResourcesProvider 
    @Override
    public List<SwaggerResource> get() 
        List resources = new ArrayList<>();
        resources.add(swaggerResource("user-consumer系统", "/user-consumer/v2/api-docs", "1.0.0"));
        resources.add(swaggerResource("user-provider系统", "/user-provider/v2/api-docs", "1.0.0"));
        return resources;
    

    private SwaggerResource swaggerResource(String name, String location, String version) 
        SwaggerResource swaggerResource = new SwaggerResource();
        swaggerResource.setName(name);
        swaggerResource.setLocation(location);
        swaggerResource.setSwaggerVersion(version);
        return swaggerResource;
    


然后在创建SwaggerConfig 类,这个类需要在网关服务,user-consumer、user-provider 服务下都得配置,所有需要在Swagger中展示的API服务都得加

@Bean
public Docket createRestApi() 
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.wan.userprovider"))//指定当前服务扫描的包路径
            .build();
private ApiInfo apiInfo() 
    return new ApiInfoBuilder()
            .title("标题")
            .description("服务接口描述")
            .termsOfServiceUrl("http://localhost:8003")
            .contact(new Contact("vker", "", "6492178@gmail.com"))
            .version("版本号")
            .build();

代码示例:

/**
 * @Auther: wan
 * @Date: 2021/4/8 15:58
 * @Description: com.wan.zuulserver.config
 * @version: 1.0
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig 
    @Bean
    public Docket createRestApi() 
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.wan.userprovider"))//指定包路径
                .build();
    

    private ApiInfo apiInfo() 
        return new ApiInfoBuilder()
                .title("user-provider")
                .description("user-provider系统接口文档说明")
                .termsOfServiceUrl("http://localhost:8003")
                .contact(new Contact("vker", "", "6492178@gmail.com"))
                .version("1.0.0")
                .build();
    

    @Bean
    UiConfiguration uiConfig() 
        return new UiConfiguration(null, "list", "alpha", "schema",
                UiConfiguration.Constants.DEFAULT_SUBMIT_METHODS, false, true, 60000L);
    

配置如下

依赖引入:网关服务、user-consumer、user-provider 服务

SwaggerConfig 类:网关服务、user-consumer、user-provider 服务

DocumentationConfig:网关服务

 

接下来运行项目,看效果:

 

 

 

 

16springcloud整合swagger2构建restful服务的apis

SpringCloud将服务注册到了Eureka上,可以从Eureka的UI界面中,看到有哪些服务已经注册到了EurekaServer上;但是如果想查看当前服务提供了哪些RESTful接口方法的话,就无法从EurekaServer获取了,而传统的方法是梳理一个接口文档来供开... 查看详情

springcloud整合swagger2

 详细用法: https://www.cnblogs.com/softidea/p/6251249.html 原文链接(注意文末):https://blog.csdn.net/ityqing/article/details/81217383一、引入依赖:<dependency><groupId>io.springfox</groupId& 查看详情

springcloud系列之四---zuul网关整合swaagger2管理api

前言本篇文章主要介绍的是Zuul网关整合Swaagger2管理API。实现过程需要先创建eureka服务端,再创建多个微服务项目,每个微服务项目整合swagger2,形成接口文档,并且每个微服务需要注册到eureka注册中心。再创建zuul网关对所有的sw... 查看详情

springcloud整合alibaba环境搭建(代码片段)

SpringCloud整合Alibaba环境搭建准备工作环境要求JDK1.8.+、Maven3.6.3、springboot2.2.5、springcloudHoxton+、springcloudalibaba2.2.1.RELEASE整合思路服务注册中心 nacos统一配置中心 nacos服务熔断组件 sentinel服务间通信组件openfeign+ribbon服务网... 查看详情

白话springcloud|第十一章:路由网关(zuul):利用swagger2聚合api文档

前言通过之前的两篇文章,可以简单的搭建一个路由网关了。而我们知道,现在都奉行前后端分离开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger进行api文档生成的。现在由于使用了统一路由网关了,都... 查看详情

springboot整合swagger框架

 Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许API来始终保... 查看详情

springcloudzuul集成swagger

写在前面 本文参考以下文章,请参考原文SpringCloud从入门到精通SpringCloudZuul中使用Swagger汇总API接口文档待解决问题在微服务架构中,Swagger为各个微服务生成的API文档都都离散在各个微服务中,不方便查看,我们希望将这些... 查看详情

springcloud整合openfeign

参考技术A使用Feign可以完成服务间调用,但是总存在一种情况:服务提供方没有注册到注册中心、服务提供方还没开发完成(因此也就无法调用)等等。此时如果我们需要完成服务之间调用该如何做呢?Feign提供了fallback机制,也就... 查看详情

springcloud整合alibaba环境搭建(代码片段)

SpringCloud整合Alibaba环境搭建准备工作环境要求JDK1.8.+、Maven3.6.3、springboot2.2.5、springcloudHoxton+、springcloudalibaba2.2.1.RELEASE整合思路服务注册中心 nacos统一配置中心 nacos服务熔断组件 sentinel服务间通信组件openfeign+ribbon服务网... 查看详情

springcloud整合alibaba环境搭建(代码片段)

SpringCloud整合Alibaba环境搭建准备工作环境要求JDK1.8.+、Maven3.6.3、springboot2.2.5、springcloudHoxton+、springcloudalibaba2.2.1.RELEASE整合思路服务注册中心 nacos统一配置中心 nacos服务熔断组件 sentinel服务间通信组件openfeign+ribbon服务网... 查看详情

springcloud整合alibaba环境搭建(代码片段)

SpringCloud整合Alibaba环境搭建准备工作环境要求JDK1.8.+、Maven3.6.3、springboot2.2.5、springcloudHoxton+、springcloudalibaba2.2.1.RELEASE整合思路服务注册中心 nacos统一配置中心 nacos服务熔断组件 sentinel服务间通信组件openfeign+ribbon服务网... 查看详情

springcloud+zookeeper+feign整合及feign原理

参考技术ASpringCloud与Zookeeper的整合只需要添加相关的starter依赖和增加相关注解即可完成。pom.xml如下:bootstrap.yml如下:最后开启服务的注册与发现service和controller实现笔者加入了swagger,如果需要只需加入如下依赖和配置:至此,... 查看详情

整合springcloud云服务架构-springcloud简介

SpringCloud是一系列框架的有序集合。利用SpringBoot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了一部分),都可以用SpringBoot的开发... 查看详情

整合springcloud云服务架构-springcloud简介

SpringCloud是一系列框架的有序集合。利用SpringBoot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了一部分),都可以用SpringBoot的开发... 查看详情

整合springcloud云服务架构-springcloud简介

SpringCloud是一系列框架的有序集合。利用SpringBoot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了一部分),都可以用SpringBoot的开发... 查看详情

springcloud整合

一、Springcloud5大组件服务注册与发现——NetflixEureka负载均衡:客户端负载均衡——NetflixRibbon服务端负载均衡——Feign(其也是依赖于Ribbon,只是将调用方式RestTemplete更改成Service接口)断路器:NetflixHystrix服务网关:NetflixZuul分布式... 查看详情

springboot整合swagger,方便后端测试

参考技术A用Swagger能够在后端写好接口后进行测试,测试过程非常方便。Swagger是一个用于生成、描述和调用RESTful接口的Web服务。通俗的来讲,Swagger就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和... 查看详情

整合springcloud云服务架构-springcloud简介

 Spring Cloud是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了一部分),都可以用Spr... 查看详情