# 星火接口开放平台 **Repository Path**: davidfdw/spark-interface-open-platform ## Basic Information - **Project Name**: 星火接口开放平台 - **Description**: 星火接口开放平台是一个管理员可以发布下线接口、并提供给开发者调用的API接口开放平台。项目涉及API签名认证、API网关的使用和SDK的开发,是一个架构设计型的微服务项目。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-11-27 - **Last Updated**: 2025-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

星火接口开放平台

Spring Boot MySQL Java Redis Nacos Dubbo

> 作者:[苦行修士](https://gitee.com/ascetic-friar) 星火接口开发平台是一个提供API接口给开发者调用的微服务平台。管理员可以接入并发布接口、统计各接口的调用情况; 用户可以注册登录并开通接口调用权限、浏览接口、在线调试,还能使用客户端SDK在代码中调用接口。 访问 http;//localhost:7529/api/doc.html 就能在线调试接口了,不需要前端配合啦~ [toc] # 项目特点 ## 模块介绍 ⭐ 项目分为五个模块,模拟接口、API网关、公共组件、后台管理、客户端SDK。 - **模拟接口**:模拟接口,提供接口的调用示例 - **API网关**:提供接口的调用、统计、鉴权、流量染色、路由转发等功能 - **公共组件**:提供公共的配置、工具类、实体类等 - **后台管理**:提供接口的发布、下线、统计等功能 - **客户端SDK**:提供接口的调用、签名认证等功能 ## 主流框架 & 特性🌞 - Spring Boot - Spring MVC - MySQL 驱动 - MyBatis - MyBatis Plus - Spring Session Redis 分布式登录 - Spring AOP - Dubbo RPC框架 - Nacos 服务注册中心 - Spring Cloud Gateway网关 - API签名认证 - 客户端SDK开发 ## 实现功能 🌙 - 用户注册登录 - 接口的发布下线 - 接口的在线调用 - 接口的调用次数统计 - 路由转发、统一鉴权、流量染色 # 搭建环境 🍃 ## 开发环境 🌿 - JDK 1.8 - MySQL 8.0.5 - Redis 6.2.6 - Maven 3.8.6 - Dubbo 3.0.9 - Nacos 2.1.0 - Spring Cloud Gateway 2021.0.5 - Spring Boot 2.6.11 - Spring Cloud 2021.0.5 ## 快速上手 🏃 1)修改 `application.yml` 的数据库配置为你自己的 2)执行 `sql/ddl.sql` 中的数据库语句,自动创建库表 3)下载启动Nacos服务,版本和依赖版本最好一致,修改服务地址。 4)启动项目,访问 `http://localhost:7529/api/doc.html` 即可打开接口文档,不需要写前端就能在线调试接口了~ # 目录结构 📚 ```tree |-- MoonApiCommon | |-- pom.xml | |-- src | | |-- main | | | |-- java | | | | `-- com | | | | `-- moon | | | | `-- common | | | | |-- model | | | | | |-- entity | | | | | | |-- InterfaceInfo.java | | | | | | |-- Post.java | | | | | | |-- User.java | | | | | | `-- UserInterfaceInfo.java | | | | | |-- enums | | | | | | |-- InterfaceInfoStatusEnum.java | | | | | | |-- PostGenderEnum.java | | | | | | `-- PostReviewStatusEnum.java | | | | | `-- vo | | | | | |-- InterfaceInfoVO.java | | | | | |-- PostVO.java | | | | | `-- UserVO.java | | | | `-- service | | | | |-- InnerInterfaceInfoService.java | | | | |-- InnerUserInterfaceInfoService.java | | | | `-- InnerUserService.java | | | `-- resources | | `-- test | | `-- java | `-- target | |-- MoonApiCommon-0.0.1.jar | |-- classes | | `-- com | | `-- moon | | `-- common | | |-- model | | | |-- entity | | | | |-- InterfaceInfo.class | | | | |-- Post.class | | | | |-- User.class | | | | `-- UserInterfaceInfo.class | | | |-- enums | | | | |-- InterfaceInfoStatusEnum.class | | | | |-- PostGenderEnum.class | | | | `-- PostReviewStatusEnum.class | | | `-- vo | | | |-- InterfaceInfoVO.class | | | |-- PostVO.class | | | `-- UserVO.class | | `-- service | | |-- InnerInterfaceInfoService.class | | |-- InnerUserInterfaceInfoService.class | | `-- InnerUserService.class | |-- generated-sources | | `-- annotations | |-- generated-test-sources | | `-- test-annotations | |-- maven-archiver | | `-- pom.properties | |-- maven-status | | `-- maven-compiler-plugin | | |-- compile | | | `-- default-compile | | | |-- createdFiles.lst | | | `-- inputFiles.lst | | `-- testCompile | | `-- default-testCompile | | |-- createdFiles.lst | | `-- inputFiles.lst | `-- test-classes |-- MoonClientSDK | |-- HELP.md | |-- pom.xml | |-- src | | |-- main | | | |-- java | | | | `-- com | | | | `-- moon | | | | `-- moonclientsdk | | | | |-- MoonApiConfig.java | | | | |-- client | | | | | `-- MoonApiClient.java | | | | |-- model | | | | | `-- User.java | | | | `-- util | | | | `-- SignUtil.java | | | `-- resources | | | |-- META-INF | | | | `-- spring.factories | | | `-- application.yml | | `-- test | | `-- java | `-- target | |-- MoonClientSDK-0.0.1.jar | |-- classes | | |-- META-INF | | | |-- spring-configuration-metadata.json | | | `-- spring.factories | | |-- application.yml | | `-- com | | `-- moon | | `-- moonclientsdk | | |-- MoonApiConfig.class | | |-- client | | | `-- MoonApiClient.class | | |-- model | | | `-- User.class | | `-- util | | `-- SignUtil.class | |-- generated-sources | | `-- annotations | |-- generated-test-sources | | `-- test-annotations | |-- maven-archiver | | `-- pom.properties | |-- maven-status | | `-- maven-compiler-plugin | | |-- compile | | | `-- default-compile | | | |-- createdFiles.lst | | | `-- inputFiles.lst | | `-- testCompile | | `-- default-testCompile | | |-- createdFiles.lst | | `-- inputFiles.lst | `-- test-classes |-- MoonGateway | |-- HELP.md | |-- pom.xml | |-- src | | |-- main | | | |-- java | | | | `-- com | | | | |-- example | | | | | `-- gateway | | | | | |-- MoonGatewayApplication.java | | | | | `-- component | | | | | `-- CustomGlobalFilter.java | | | | `-- moon | | | | `-- project | | | | `-- provider | | | | `-- RpcDemoService.java | | | `-- resources | | | `-- application.yml | | `-- test | | `-- java | | `-- com | | `-- example | | `-- gateway | | `-- MoonGatewayApplicationTests.java | `-- target | |-- classes | | |-- application.yml | | `-- com | | |-- example | | | `-- gateway | | | |-- MoonGatewayApplication.class | | | `-- component | | | |-- CustomGlobalFilter$1.class | | | `-- CustomGlobalFilter.class | | `-- moon | | `-- project | | `-- provider | | `-- RpcDemoService.class | |-- generated-sources | | `-- annotations | |-- generated-test-sources | | `-- test-annotations | `-- test-classes | `-- com | `-- example | `-- gateway | `-- MoonGatewayApplicationTests.class |-- MoonInterface | |-- pom.xml | |-- src | | |-- main | | | |-- java | | | | `-- com | | | | `-- mooninterface | | | | |-- InterfaceApplication.java | | | | `-- controller | | | | `-- NameController.java | | | `-- resources | | | `-- application.yml | | `-- test | | `-- java | | `-- com | | `-- mooninterface | | `-- client | | `-- MoonApiClientTest.java | `-- target | |-- classes | | |-- application.yml | | `-- com | | `-- mooninterface | | |-- InterfaceApplication.class | | `-- controller | | `-- NameController.class | |-- generated-sources | | `-- annotations | |-- generated-test-sources | | `-- test-annotations | `-- test-classes | `-- com | `-- mooninterface | `-- client | `-- MoonApiClientTest.class |-- OpenAPI02 | |-- doc | | `-- db.md | |-- mvnw | |-- mvnw.cmd | |-- pom.xml | |-- sql | | `-- ddl.sql | |-- src | | |-- main | | | |-- java | | | | `-- com | | | | `-- moon | | | | `-- project | | | | |-- OpenAPI02Application.java | | | | |-- annotation | | | | | `-- AuthCheck.java | | | | |-- aop | | | | | |-- AuthInterceptor.java | | | | | `-- LogInterceptor.java | | | | |-- common | | | | | |-- BaseResponse.java | | | | | |-- DeleteRequest.java | | | | | |-- ErrorCode.java | | | | | |-- IdRequest.java | | | | | |-- PageRequest.java | | | | | `-- ResultUtils.java | | | | |-- config | | | | | |-- CorsConfig.java | | | | | |-- Knife4jConfig.java | | | | | `-- MyBatisPlusConfig.java | | | | |-- constant | | | | | |-- CommonConstant.java | | | | | `-- UserConstant.java | | | | |-- controller | | | | | |-- AnalysisController.java | | | | | |-- InterfaceInfoController.java | | | | | |-- PostController.java | | | | | |-- UserController.java | | | | | `-- UserInterfaceInfoController.java | | | | |-- exception | | | | | |-- BusinessException.java | | | | | `-- GlobalExceptionHandler.java | | | | |-- mapper | | | | | |-- InterfaceInfoMapper.java | | | | | |-- PostMapper.java | | | | | |-- UserInterfaceInfoMapper.java | | | | | `-- UserMapper.java | | | | |-- model | | | | | |-- dto | | | | | | |-- interfaceinfo | | | | | | | |-- InterfaceInfoAddRequest.java | | | | | | | |-- InterfaceInfoInvokeRequest.java | | | | | | | |-- InterfaceInfoQueryRequest.java | | | | | | | `-- InterfaceInfoUpdateRequest.java | | | | | | |-- post | | | | | | | |-- PostAddRequest.java | | | | | | | |-- PostDoThumbRequest.java | | | | | | | |-- PostQueryRequest.java | | | | | | | `-- PostUpdateRequest.java | | | | | | |-- user | | | | | | | |-- UserAddRequest.java | | | | | | | |-- UserLoginRequest.java | | | | | | | |-- UserQueryRequest.java | | | | | | | |-- UserRegisterRequest.java | | | | | | | `-- UserUpdateRequest.java | | | | | | `-- userInterfaceInfo | | | | | | |-- UserInterfaceInfoAddRequest.java | | | | | | |-- UserInterfaceInfoQueryRequest.java | | | | | | `-- UserInterfaceInfoUpdateRequest.java | | | | | |-- entity | | | | | | |-- InterfaceInfo.java | | | | | | |-- Post.java | | | | | | |-- User.java | | | | | | `-- UserInterfaceInfo.java | | | | | |-- enums | | | | | | |-- InterfaceInfoStatusEnum.java | | | | | | |-- PostGenderEnum.java | | | | | | `-- PostReviewStatusEnum.java | | | | | `-- vo | | | | | |-- PostVO.java | | | | | `-- UserVO.java | | | | |-- provider | | | | | |-- RpcDemoService.java | | | | | `-- RpcDemoServiceImpl.java | | | | `-- service | | | | |-- InterfaceInfoService.java | | | | |-- PostService.java | | | | |-- UserInterfaceInfoService.java | | | | |-- UserService.java | | | | `-- impl | | | | |-- InterfaceInfoServiceImpl.java | | | | |-- PostServiceImpl.java | | | | |-- UserInterfaceInfoServiceImpl.java | | | | |-- UserServiceImpl.java | | | | `-- inner | | | | |-- InnerInterfaceInfoServiceImpl.java | | | | |-- InnerUserInterfaceInfoServiceImpl.java | | | | `-- InnerUserServiceImpl.java | | | `-- resources | | | |-- application-prod.yml | | | |-- application.yml | | | |-- banner.txt | | | `-- mapper | | | |-- InterfaceInfoMapper.xml | | | |-- PostMapper.xml | | | |-- UserInterfaceInfoMapper.xml | | | `-- UserMapper.xml | | `-- test | | `-- java | | `-- com | | `-- moon | | `-- project | | `-- service | | |-- UserInterfaceInfoServiceTest.java | | `-- UserServiceTest.java | `-- target | |-- classes | | |-- application-prod.yml | | |-- application.yml | | |-- banner.txt | | |-- com | | | `-- moon | | | `-- project | | | |-- OpenAPI02Application.class | | | |-- annotation | | | | `-- AuthCheck.class | | | |-- aop | | | | |-- AuthInterceptor.class | | | | `-- LogInterceptor.class | | | |-- common | | | | |-- BaseResponse.class | | | | |-- DeleteRequest.class | | | | |-- ErrorCode.class | | | | |-- IdRequest.class | | | | |-- PageRequest.class | | | | `-- ResultUtils.class | | | |-- config | | | | |-- CorsConfig.class | | | | |-- Knife4jConfig.class | | | | `-- MyBatisPlusConfig.class | | | |-- constant | | | | |-- CommonConstant.class | | | | `-- UserConstant.class | | | |-- controller | | | | |-- AnalysisController.class | | | | |-- InterfaceInfoController.class | | | | |-- PostController.class | | | | |-- UserController.class | | | | `-- UserInterfaceInfoController.class | | | |-- exception | | | | |-- BusinessException.class | | | | `-- GlobalExceptionHandler.class | | | |-- mapper | | | | |-- InterfaceInfoMapper.class | | | | |-- PostMapper.class | | | | |-- UserInterfaceInfoMapper.class | | | | `-- UserMapper.class | | | |-- model | | | | |-- dto | | | | | |-- interfaceinfo | | | | | | |-- InterfaceInfoAddRequest.class | | | | | | |-- InterfaceInfoInvokeRequest.class | | | | | | |-- InterfaceInfoQueryRequest.class | | | | | | `-- InterfaceInfoUpdateRequest.class | | | | | |-- post | | | | | | |-- PostAddRequest.class | | | | | | |-- PostDoThumbRequest.class | | | | | | |-- PostQueryRequest.class | | | | | | `-- PostUpdateRequest.class | | | | | |-- user | | | | | | |-- UserAddRequest.class | | | | | | |-- UserLoginRequest.class | | | | | | |-- UserQueryRequest.class | | | | | | |-- UserRegisterRequest.class | | | | | | `-- UserUpdateRequest.class | | | | | `-- userInterfaceInfo | | | | | |-- UserInterfaceInfoAddRequest.class | | | | | |-- UserInterfaceInfoQueryRequest.class | | | | | `-- UserInterfaceInfoUpdateRequest.class | | | | |-- entity | | | | | `-- Post.class | | | | `-- enums | | | | |-- PostGenderEnum.class | | | | `-- PostReviewStatusEnum.class | | | |-- provider | | | | |-- RpcDemoService.class | | | | `-- RpcDemoServiceImpl.class | | | `-- service | | | |-- InterfaceInfoService.class | | | |-- PostService.class | | | |-- UserInterfaceInfoService.class | | | |-- UserService.class | | | `-- impl | | | |-- InterfaceInfoServiceImpl.class | | | |-- PostServiceImpl.class | | | |-- UserInterfaceInfoServiceImpl.class | | | |-- UserServiceImpl.class | | | `-- inner | | | |-- InnerInterfaceInfoServiceImpl.class | | | |-- InnerUserInterfaceInfoServiceImpl.class | | | `-- InnerUserServiceImpl.class | | `-- mapper | | |-- InterfaceInfoMapper.xml | | |-- PostMapper.xml | | |-- UserInterfaceInfoMapper.xml | | `-- UserMapper.xml | |-- generated-sources | | `-- annotations | |-- generated-test-sources | | `-- test-annotations | `-- test-classes | `-- com | `-- moon | `-- project | `-- service | |-- UserInterfaceInfoServiceTest.class | `-- UserServiceTest.class |-- README.md `-- pom.xml ```