# 极兔接口一站通 **Repository Path**: sky007z/api ## Basic Information - **Project Name**: 极兔接口一站通 - **Description**: 一个提供 API 接口供开发者调用的平台。 管理员可以接入并发布接口,统计分析各接口调用情况;用户可以注册登录并开通接口调用权限, 然后可以浏览接口及在线调试,还能使用客户端 SDK 轻松在代码中调用接口。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-10-10 - **Last Updated**: 2023-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 极兔接口一站通 ## 项目简介 - 一个提供 API 接口供开发者调用的平台。 管理员可以接入并发布接口,统计分析各接口调用情况;用户可以注册登录并开通接口调用权限, 然后可以浏览接口及在线调试,还能使用客户端 SDK 轻松在代码中调用接口。 ### 业务流程 ![img.png](images/img.png) ### 技术选型 - Spring Boot - Spring Boot Starter(SDK开发) - Dubbo(RPC) - nacos (服务注册) - Spring Cloud Gateway(网关 限流 日志实现) ### 模块介绍 ![img.png](images/drawio.png) ### 功能介绍 - 1.为防止接口被恶意调用,设计 API 签名认证算法,为用户分配唯一 ak / sk 以鉴权,保障调用的安全性、溯源性。 - 2.为解决开发者调用成本过高的问题,基于 Spring Boot Starter 开发了客户端 SDK,一行代码 即可调用接口,提高开发体验。 - 3.选用 Spring Cloud Gateway 作为 API 网关,实现了路由转发、访问控制、流量染色,并集中处理签名校验、请求参数校验、接口调用统计等业务逻辑,提高安全性的同时、便于系统开发维护。 - 4.为解决多个子系统内代码大量重复的问题,抽象模型层和业务层代码为公共模块,并使用 Dubbo RPC 框架实现子系统间的高性能接口调用,大幅减少重复代码。 - 5.开发聚合搜索服务接口,使用门面、适配器、注册器模式等设计模式保证该接口代码的可维护、可扩展性,使用Jsoup爬虫为调用者提供其他平台的信息资源。 ### 快速上手 - 安装本地环境: - 打开项目的配置文件,将mysql,redis等ip及其密码设置为自己的 ```text MySQL-8.0 Redis-5.0 Nacos-2.0 JDK-8 ``` ```yml datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/api username: password: ``` - 导入sql文件 - 运行admin,interface,gateway模块 ```text 运行三个模块的启动类 ``` - 启动前端 ```text - 下载安装并配置 node.js - 在目录控制台输入:npm install - 在 package.json 中运行"start dev"指令 ``` ### 项目截图 - 管理员功能界面,具有下线,发布,开通,调试等功能。 ![img_1.png](images/img_1.png) ![img.png](images/img_2.png) ![img.png](images/img_4.png) ![img.png](images/img_5.png) ![img.png](images/img_6.png) - 普通用户功能。 ![img_3.png](images/img_3.png)