# yangapi_backend **Repository Path**: diligent-sheep/yangapi_backend ## Basic Information - **Project Name**: yangapi_backend - **Description**: 羊毛接口 --- API开放平台 后端 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-06 - **Last Updated**: 2024-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 羊毛接口 #### 介绍 本项目是基于 Spring Boot 后端 + React 前端的全栈微服务项目,是一个面向开发者的 API 平台,提供 API 接口供开发者调用。用户通过注册登录,可以开通接口调用权限,并可以浏览和调用接口。每次调用都会进行统计,用户可以根据统计数据进行分析和优化。管理员可以发布接口、下线接口、接入接口,并可视化接口的调用情况和数据。(此仓库为后端仓库,前端仓库访问:[在线访问](https://gitee.com/diligent-sheep/yangapi_frontend) #### 软件架构 后端: 1. jdk1.8 2. Spring Boot 2.7.0 3. Maven3 4. MySQL 5.8.7 5. Redis 3.2.100 6. MyBatis-Plus 及 MyBatis X 自动生成 7. Spring Boot Starter (SDK开发) 8. Dubbo分布式(RPC,nacos) 9. Spring Cloud Gateway 微服务网关 10. Swagger + Knife4j (生成接口文档) #### 目录结构 ##### yangapi_backend 整个项目的后端 ##### yangapi_client_sdk 供开发者使用的SDK ##### yangapi_common 存放项目的一些公共类 ##### yangapi_interface 开发者需要在此编写自己的接口 ##### yangapi_gateway 项目的网关 #### 安装使用教程 1. 拉取源码 使用命令 ``` git clone ``` 克隆代码到本地编译器中(本人使用idea) 或者直接使用idea直接获取源代码 ![输入图片说明](doc/image.png) 输入 ``` https://gitee.com/diligent-sheep/yangapi_backend.git ``` 即可从git直接拉取源码到idea 2. 刷新maven依赖。 3. 在sql目录下找到yangapi.sql文件,使用navicat加载,生成数据库 4. 修改application.yml文件中的数据库的配置 ``` spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/yangapi username: root # 自己的用户名 password: 123456 # 自己的密码 ``` 5. 在D:\Nacos\nacos\bin目录下,打开cmd窗口 输入 ``` startup.cmd -m standalone ``` 单机启动nacos服务。 6. 找到redis-server.exe文件,启动redis服务端 7. 找到引导类 MyApplication.class , 启动该服务 8. 启动成功后,查看resources/application.yml 配置文件,查看该项目运行端口以及路径 ``` server: port: 7529 servlet: context-path: /api ``` 9. 地址栏输入 `http://localhost:7529/api/doc.html` 即可访问由swagger自动生成的接口文档。 ![输入图片说明](doc/image15.png) 10. 找到yangapi_gateway目录,该目录下是网关服务,使用新的idea窗口打开,同样找到引导类 启动网关服务。 ![输入图片说明](doc/image2.png) 11. 找到yangapi_interface目录,该目录下是开发者自己编写的接口服务(测试接口),找到引导类 启动接口服务 ![输入图片说明](doc/image3.png) 12. 此时后端服务全部启动完毕,需要去[前端仓库](https://gitee.com/diligent-sheep/yangapi_frontend),启动前端页面。 13. 重复上述第一个方法,拉取源码到idea 14. 在根目录下找到package.json文件 ![输入图片说明](doc/image4.png) 15. 以dev的方式启动 16. ![输入图片说明](doc/image5.png) 运行成功后,点击 http://localhost:8000 17. 即可进入API开放平台的前端页面 18. 根据提示,输入用户名(user)和密码(ant.design)进行 游客登录。 管理员登录: 用户名(yangmao) 密码(yangmaojiekou) ![输入图片说明](doc/image6.png) ##### 游客登录 19. ![输入图片说明](doc/image8.png) 登录成功后的游客界面,游客可以进行已上线接口的调用测试。 20. 根据接口文档,输入正确的参数,进行接口调试 ![输入图片说明](doc/image9.png) 21. ![输入图片说明](doc/image10.png) 接口调用成功。 ##### 管理员登录 19. 管理员登录页面会多一个管理页,里面有一个接口管理模块,一个接口分析模块 ![输入图片说明](doc/image11.png) 20. 接口管理模块 ![输入图片说明](doc/image12.png) 21. 接口分析模块(以饼图的形式呈现给管理员) ![输入图片说明](doc/image13.png) #### 开发者如何使用SDK ##### 测试调用 将yangapi_client_sdk源码下载到本地,使用maven install,将该依赖下载到本地的maven仓库 ![输入图片说明](doc/image14.png),在使用之前,可以在application.yml可以直接设置客户端的配置 ``` # 此段配置仅用于测试,实际应该是从登录用户中拿到ak sk yangapi: client: access-key: yangmao secret-key: abcdefgh ``` 在使用时,直接通过@Resource注入即可。 ##### 新增接口 开发者需要在yangapi_interface新增一个接口,然后在SDK中,给客户端添加一个方法,通过Hutool请求工具,发送网关,在网关微服务中的application.yml文件中,添加gateway的断言,使得网关可以通过断言,路由请求到新编写的接口。