# 开放API **Repository Path**: curly-baboon/lin-api ## Basic Information - **Project Name**: 开放API - **Description**: 开放API项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-05-14 - **Last Updated**: 2023-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## API开放平台 ### 1、项目背景 前端需要使用后端提供的接口,比如一个随机图片的接口(https://img.btstu.cn/api/images/5c6a5f719a3a6.jpg) 需要具备以下特点: 1. 防止攻击(安全性) 2. 不能随便调用(限制、开通) 3. **统计调用次数** 4. 计费 5. 流量保护 6. API接入 ### 2、项目介绍 基于 React + Spring Boot + Dubbo + Gateway 的 API 接口开放调用平台。管理员可以接入并发布接口,可视化各接口调用情况;用户可以开通接口调用权限、浏览接口及在线调试,并通过客户端 SDK 轻松调用接口。 ### 3、业务流程 ![输入图片说明](imgimage-20230427111629683.png) ### 4、技术选型 前端:Ant Design Pro、React、Ant Design Procomponents、Umi、Umi Request(Axios的封装) 后端:Java Spring Boot、Spring Boot Starter(SDK开发)、网关/限流/日志实现 ### 5、使用说明 #### 1、目录结构说明 linapi-back:后端平台项目,主要业务的增删改查功能的实现,以及dubbo中的服务提供者。 linapi-client-sdk:客户端sdk,主要用于封装了签名工具和调用接口的功能实现,用Maven打包供其他项目使用。 linapi-common:公共实体类和服务,主要是定义了一些需要在zk中注册的服务接口,在服务提供者和调用者引入,提供者引入后实现对应的接口,注册到zk上,调用者引入后注入,然后使用服务,使用Maven打包供back和gateway使用。 linapi-front:前端项目,进入目录下执行npm install安装依赖(不用重复安装),执行npm run dev执行前端项目。 linapi-interface:模拟接口项目,主要是提供接口服务的模拟项目。 linapi-zookeeper:dubbo封装的zookeeper服务,启动之后即启动了zk。 lin-gateway:网关项目,主要对接口请求路由进行转发过滤、校验,保证接口调用的安全性。 #### 2、使用 1、启动linapi-zookeeper,将zk服务启动; 2、启动linapi-interface,将接口服务启动; 3、启动linapi-back,将后端平台项目启动,同时自动将服务注册到zk上了; 4、启动lin-gateway,启动网关项目,这里需要用到注册在zk上的服务,所以事先需要启动1、3步骤; 5、启动前端linapi-front项目。