[TOC]
项目介绍
一个API平台,就像百度地图、高德地图等API。
- 用户可以调用
- 管理员可以发布、下线、限流接口
设计

技术选型
前端
- Ant Design Pro
- Umi
- Umi Requests
后端
- java: Spring-boot
- 网关、限流、日志
基础项目搭建
前端搭建
pro create yuapi-frontend选择 umi@4(umi@3也行),然后用ide打开
什么都不要改,看看能不能运行
执行命令yarn或者npm install,等待安装完成

大概安装了几分钟

然后跑一下试试
npm start
输入账号密码登录

登录成功,可以点击左下角看看api文档目录

项目瘦身
删除国际化

看看项目结构:

删除不需要的测试和代码检查,注意删除playwright时删除依赖

前端初始化成功了
后端初始化
克隆启动模板:
git clone http://gitlab.code-nav.cn/root/springboot-init.git模板功能:
- Spring Boot 2.7.0(贼新)
- Spring MVC
- MySQL 驱动
- MyBatis
- MyBatis Plus
- Spring Session Redis 分布式登录
- Spring AOP
- Apache Commons Lang3 工具类
- Lombok 注解
- Swagger + Knife4j 接口文档
- Spring Boot 调试工具和项目处理器
- 全局请求响应拦截器(记录日志)
- 全局异常处理器
- 自定义错误码
- 封装通用响应类
- 示例用户注册、登录、搜索功能
- 示例单元测试类
- 示例 SQL(用户表)
修改数据库配置,执行SQL文件

启动
网页访问:http://localhost:7529/api/doc.html#/home

接口管理
-- 接口信息
create table if not exists yuapi.`interface_info`
(
`id` bigint not null auto_increment comment '主键' primary key,
`name` varchar(256) not null comment '名称',
`description` varchar(256) null comment '描述',
`url` varchar(512) not null comment '接口地址',
`requestHeader` text null comment '请求头',
`responseHeader` text null comment '响应头',
`status` int default 0 not null comment '接口状态(0-关闭,1-开启)',
`method` varchar(256) not null comment '请求类型',
`userId` bigint not null comment '创建人',
`createTime` datetime default CURRENT_TIMESTAMP not null comment '创建时间',
`updateTime` datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
`isDelete` tinyint default 0 not null comment '是否删除(0-未删, 1-已删)'
) comment '接口信息';