[TOC]

项目介绍

一个API平台,就像百度地图、高德地图等API。

  • 用户可以调用
  • 管理员可以发布、下线、限流接口

设计

项目设计(侵删)

技术选型

前端

  • Ant Design Pro
  • Umi
  • Umi Requests

后端

  • java: Spring-boot
  • 网关、限流、日志

基础项目搭建

前端搭建

pro create yuapi-frontend

选择 umi@4(umi@3也行),然后用ide打开

什么都不要改,看看能不能运行

执行命令yarn或者npm install,等待安装完成

image-20221117142655963

大概安装了几分钟

image-20221117143335037

然后跑一下试试

npm start

image-20221117143429322

输入账号密码登录

image-20221117143612566

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

image-20221117144327860

项目瘦身

删除国际化

image-20221117144046144

看看项目结构:

image-20221117144637399

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

image-20221117144903837

前端初始化成功了

后端初始化

克隆启动模板:

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文件

image-20221117150819769

启动

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

image-20221117154433209

接口管理

-- 接口信息
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 '接口信息';

用户查看接口