Grape-API接口开放平台
GrapeAPI
项目简介
项目地址
https://github.com/kanggama857/Grape-API
基于React + Spring Boot + Dubbo + Gateway的API接口开放调用平台。项目共分为Web系统、模拟接口、公共模块、客户端SDK、API网关这5个子项目。管理员可以接入并发布接口,可视化各接口的调用情况。用户可以开通接口调用权限、浏览接口及在线调试,并通过客户端SDK轻松调用接口。
- 根据业务流程,将整个项目后端划分为Web系统、模拟接口、公共模块、客户端SDK、API网关这5个子项目,并使用Maven进行多模块依赖管理和打包。
- 使用 Swagger + Knife.4j 自动生成OpenAPI规范的接口文档,前端在此基础上使用插件自动生成接口请求代码,降低前后端协作成本。
- 为防止接口被恶意调用,设计 API 签名认证算法,为用户分配唯一 ak / sk 以鉴权,保障调用的安全性。
- 基于 Spring Boot Starter 开发了客户端 SDK,一行代码 即可调用接口,提高开发体验。
- 选用 Spring Cloud Gateway 作为 API 网关,实现了路由转发、访问控制,并集中处理签名校验、请求参数校验、接口调用统计等业务逻辑,
- LogBack+Dubbo Filter全链路日志处理。
项目架构图
业务架构图

技术架构图

项目用到的技术
| item | version |
|---|---|
| JDK | 1.8 |
| SpringBoot | 2.7.9 |
| SpringCloud | 2021.0.7.0 |
| Apache Dubbo | 3.1.6 |
| OpenAPI | 3 |
| MySQL | 5.7 |
| Redis | 6.2 |
| Mybatis-Plus | 3.5.2 |
| Nacos | 2.2.1 |
项目模块说明
api-backend:管理员可以发布接口、设定是否下线接口等功能,以及查看用户使用接口的情况,例如使用次数,错误调用等。api-client-sdk:提供一个简化的工具包,使得开发者可以更方便地调用接口,例如提供预封装的HTTP请清求方法、接口调用示例等。api-common:提供实体类对象,Repository,mapper,自定义异常,常量,自定义注解api-gateway:负责接口的流量控制,安全防护等功能,提供一致的接口服务质量,和简化API的管理工作。api-interface:提供模拟接口供开发者使用和测试
如何使用本项目
在使用本项目前,执行sql文件夹下的sql文件,生成对应的表
- 方法一:
下载源码,导入Idea,依次配置运行api-interface、api-backend、api-gateway模块
注意:因为隐藏了配置文件,所以需要修改各个模块下的application.yml配置文件才可以正常启动
Grape-API接口开放平台
http://example.com/2024/02/24/grape-api/