淘东电商项目(05) - Swagger及网关统一管理API

简介: 淘东电商项目(05) - Swagger及网关统一管理API

引言

在上一节《淘东电商项目(04) - 注册中心及Feign远程调用》主要讲解了注册中心以及使用Feign远程调用。

代码已提交至Github(版本号:8e89a7b9c7d01685c45f11f545449d95ede0293b),有兴趣的同学可以下载来看看: https://github.com/ylw-github/taodong-shop

本文将开始讲解使用Swagger管理每个微服务的API,并使用网关来进行统一管理。

本文目录结构:

l____引言

l____ 1. 微服务整合Swagger

l________1.1 配置接口层的Maven

l________1.2 配置会员服务

l________1.3 配置微信服务

l____ 2. 网关统一管理API

l________2.1 Maven依赖

l________2.2 统一管理API代码

l________2.3 配置

l____ 3. 测试

l________3.1 验证单个服务swagger

l________3.2 验证网关整合后的swagger

l____总结

1. 微服务整合Swagger

下面来讲解配置微信服务和会员服务的API Swagger管理,然后整合到网关来实现API的统一管理。

1.1 配置接口层的Maven

配置taodong-shop-service-api的maven文件,添加swagger依赖:

<!-- swagger-spring-boot -->
<dependency>
  <groupId>com.spring4all</groupId>
  <artifactId>swagger-spring-boot-starter</artifactId>
  <version>1.7.0.RELEASE</version>
</dependency>

1.2 配置会员服务

首先要开启swagger开启配置文件,在会员服务(taodong-shop-service-member)的启动类添加注解@EnableSwagger2Doc:

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
@EnableSwagger2Doc
public class AppMember {
    public static void main(String[] args) {
        SpringApplication.run(AppMember.class, args);
    }
}

然后在配置文件添加swagger描述(可选):

####swagger相关配置
swagger:
  base-package: com.ylw.taodong
  title: 淘东电商项目-会员服务接口
  description: 该项目“基于SpringCloud2.x构建微服务电商项目。
  version: 1.1
  terms-of-service-url: www.xxx.com
  contact:
    name: 杨林伟
    email: xxxxxx@qq.com

最后在接口(taodong-shop-service-api-member)添加Swagger文档注解描述:

@Api(tags = "会员服务接口")
public interface MemberService {
    @ApiOperation(value = "会员服务调用微信服务")
    @GetMapping("/memberInvokWeixin")
    public AppEntity memberInvokWeixin();
}

1.3 配置微信服务

配置微信服务与配置会员服务的流程导致一致。

首先要开启swagger开启配置文件,在微信服务(taodong-shop-service-weixin)的启动类添加注解@EnableSwagger2Doc:

@SpringBootApplication
@EnableEurekaClient
@EnableSwagger2Doc
public class AppWeiXin {
    public static void main(String[] args) {
        SpringApplication.run(AppWeiXin.class, args);
    }
}

然后在配置文件添加swagger描述(可选):

####swagger相关配置
swagger:
  base-package: com.ylw.taodong
  title: 淘东电商项目-微信服务接口
  description: 该项目“基于SpringCloud2.x构建微服务电商项目。
  version: 1.1
  terms-of-service-url: www.xxx.com
  contact:
    name: 杨林伟
    email: xxxxxx@qq.com

最后在接口(taodong-shop-service-api-weixin)添加Swagger文档注解描述:

@Api(tags = "微信服务接口")
public interface AppService {
    @ApiOperation(value = "微信应用服务接口")
    @GetMapping("/getApp")
    public AppEntity getApp();
}

2. 网关统一管理API

模块定位到taodong-shop-basics-zuul。

2.1 Maven依赖

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<!-- swagger-spring-boot -->
<dependency>
  <groupId>com.spring4all</groupId>
  <artifactId>swagger-spring-boot-starter</artifactId>
  <version>1.7.0.RELEASE</version>
</dependency>

2.2 统一管理API代码

配置启动类开启Swagger,并配置每个子Swagger的相关内容,如下:

@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
@EnableSwagger2Doc
public class AppGateWay {
    public static void main(String[] args) {
        SpringApplication.run(AppGateWay.class, args);
    }
    // 添加文档来源
    @Component
    @Primary
    class DocumentationConfig implements SwaggerResourcesProvider {
        @Override
        public List<SwaggerResource> get() {
            List resources = new ArrayList<>();
            // 网关使用服务别名获取远程服务的SwaggerApi
            resources.add(swaggerResource("taodong-shop-service-member", "/taodong-shop-service-member/v2/api-docs", "2.0"));
            resources.add(swaggerResource("taodong-shop-service-weixin", "/taodong-shop-service-weixin/v2/api-docs", "2.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;
        }
    }
}

2.3 配置

###服务启动端口号
server:
  port: 80
###服务名称(服务注册到eureka名称)
spring:
  application:
    name: taodong-shop-basics-zuul
###服务注册到eureka地址
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8100/eureka

3. 测试

3.1 验证单个服务swagger

1.启动Eureka注册中心服务(AppEureka),启动后浏览器输入:http://localhost:8100/,可以看到如下:

2.启动会员服务(AppMember)

3.启动微信服务(AppWeixin)

4.验证会员服务,浏览器输入:http://localhost:8300/swagger-ui.html#/,可以看到swagger管理的接口内容如下:

6.验证微信服务,浏览器输入:http://localhost:8200/swagger-ui.html#/,可以看到swagger管理的接口内容如下:

3.2 验证网关整合后的swagger

最后我们来启动网关服务(AppGateWay),然后浏览器输入

http://localhost/swagger-ui.html#/,在如下界面,可以看到可以选择查看项目的API文档,比如选择“会员服务服务”的接口,如下:

在比如选择“微信服务项目”的接口,如下:

总结

目录
相关文章
|
算法 数据挖掘 BI
拼多多 API 接口:解锁电商世界的无限可能
拼多多API接口是商家高效运营的利器,支持商品信息同步、订单自动化管理、营销活动对接及数据决策分析。通过API,可实现多平台信息互通、提升运营效率30%、降低错误率20%,助力销量增长50%。掌握API,赢在电商竞争起跑线。
1851 5
|
机器人 API 开发者
解锁1688电商API:开启电商新世界的神奇钥匙
1688电商API是连接商家与1688平台的高效工具,通过自动化同步商品、订单、库存等数据,显著提升运营效率30%以上。它省时省力、降低出错率,并支持智能补货等功能,助力企业快速拓展业务。技术小白也可轻松接入,是电商进阶的必备利器。
|
算法 API 数据安全/隐私保护
电商 API 双平台实战:淘宝 item.get + 京东 item_detail 对接指南(附可复用代码 + 问题排查)
本文详细解析了淘宝和京东双平台API对接的核心流程,涵盖资质申请、凭证获取、签名生成、高频接口调用及常见问题解决方案,助力开发者高效实现商品数据同步与管理。
|
数据采集 算法 API
2025 电商 API 接口全解析:从接入到实战的通用指南
本文系统解析了电商 API 的核心价值、分类及 2025 年最新趋势,涵盖商品、订单、支付、用户四大模块。内容包括 API 接入的通用前置准备、核心场景实战案例及避坑策略,强调合规性、实时性与智能化应用。适用于企业及开发者高效对接主流电商平台。
|
人工智能 安全 API
国美 API 接口:传统家电电商数字化转型新动力
在数字经济时代,国美等传统家电电商正借助API接口实现数字化转型。API作为连接各系统的技术桥梁,助力国美打通全渠道、提升运营效率、优化用户体验,并推动生态合作与创新。尽管面临技术整合与安全挑战,国美通过API已实现效率提升、成本降低和业务增长。未来,API将持续推动国美向智能化、平台化发展,重塑行业格局。
|
机器学习/深度学习 搜索推荐 API
蘑菇街 API 接口:开启时尚电商个性化推荐新潮流
蘑菇街API接口通过机器学习与用户行为分析,实现精准个性化推荐,提升用户体验与商业价值,推动时尚电商智能化发展。
|
监控 供应链 搜索推荐
电商数据开发实践:深度剖析1688商品详情 API 的技术与应用
在电商数字化转型中,数据获取效率与准确性至关重要。本文介绍了一款高效商品详情API,具备全维度数据采集、价格库存管理、多媒体资源获取等功能,结合实际案例探讨其在电商开发中的应用价值与优势。
|
缓存 JSON 小程序
分享一些关于电商商品详情API接口的实际案例
在电商开发中,调用商品详情API常遇到频率限制、数据格式不统一、版本变更等问题。本文分享实战经验,包括频率控制、数据格式化、缓存处理等解决方案,并提供调试代码示例,助力提升API调用稳定性与开发效率。
|
搜索推荐 算法 数据挖掘
用小红书电商 API 实现小红书店铺商品用户画像精准构建
在社交电商时代,小红书凭借海量用户与商品数据,助力店铺构建精准用户画像,实现个性化推荐与高效运营。本文详解如何通过小红书电商 API 获取用户行为、交易与属性数据,结合算法模型完成数据清洗、特征提取与用户聚类,提升转化率与用户粘性。内容涵盖 API 调用示例、特征工程、模型构建及实施建议,帮助开发者系统化落地用户画像方案,驱动业务增长。
|
供应链 监控 数据挖掘
解锁淘宝电商 API:开启无限商业新可能
淘宝电商API如同一把“智能钥匙”,赋能商家实现智能选品、精准营销、高效库存管理与深度数据分析。通过实时数据洞察市场趋势,优化运营决策,提升转化率与用户满意度,助力电商企业降本增效,抢占市场先机。