基于spring boot实现接口管理平台

数据库结构

/*
Navicat MySQL Data Transfer

Source Server         : localhost_3306
Source Server Version : 50724
Source Host           : localhost:3306
Source Database       : interface

Target Server Type    : MYSQL
Target Server Version : 50724
File Encoding         : 65001

Date: 2024-03-18 12:32:48
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for interface
-- ----------------------------
DROP TABLE IF EXISTS `interface`;
CREATE TABLE `interface` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `type` varchar(255) DEFAULT NULL,
  `path` varchar(255) DEFAULT NULL COMMENT '接口的访问路径',
  `status` int(11) NOT NULL DEFAULT '0' COMMENT '接口的完成状态:1:完成  0:未完成',
  `group_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `group_id` (`group_id`),
  CONSTRAINT `interface_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `interface_group` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Table structure for interface_detail
-- ----------------------------
DROP TABLE IF EXISTS `interface_detail`;
CREATE TABLE `interface_detail` (
  `id` int(11) NOT NULL,
  `update_time` datetime DEFAULT NULL,
  `update_id` int(11) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `create_id` int(11) DEFAULT NULL,
  `describe` varchar(255) DEFAULT NULL,
  `heads` varchar(255) DEFAULT NULL,
  `body` varchar(255) DEFAULT NULL COMMENT '存储请求参数,格式为转化为json字符串的List<myInterface>',
  `query` varchar(255) DEFAULT NULL,
  `return_value` varchar(255) DEFAULT NULL,
  `interface_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `interface_id` (`interface_id`),
  CONSTRAINT `interface_detail_ibfk_1` FOREIGN KEY (`interface_id`) REFERENCES `interface` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Table structure for interface_group
-- ----------------------------
DROP TABLE IF EXISTS `interface_group`;
CREATE TABLE `interface_group` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `describe` varchar(255) DEFAULT NULL,
  `project_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `project_id` (`project_id`),
  CONSTRAINT `interface_group_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Table structure for project
-- ----------------------------
DROP TABLE IF EXISTS `project`;
CREATE TABLE `project` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT '项目名称',
  `user_id` varchar(255) DEFAULT NULL COMMENT '使用json字符串来储存一个list<Integer>,来储存项目的管理员id',
  `user_ids` varchar(255) DEFAULT NULL COMMENT '使用json字符串来储存一个list<Integer>,来储存项目的组员id',
  `describe` varchar(255) DEFAULT NULL COMMENT '项目的描述信息',
  `token` varchar(255) NOT NULL COMMENT '项目唯一标识码',
  PRIMARY KEY (`id`),
  UNIQUE KEY `token` (`token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

user表

project 表

interface_group表

interface表 

 

interface_detail表

 项目准备工作

项目架构

项目依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.itcast.demo</groupId>
    <artifactId>hotel-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>hotel-demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <elasticsearch.version>7.12.1</elasticsearch.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

		<!--FastJson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.71</version>
        </dependency>

		<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.9.RELEASE</version>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

 实体类准备

 User:

/**
 * 用户
 */
@Data
public class User {
    private Integer id;//用户id
    private String username;//用户账号
    private String password;//用户密码
}

Project:

/**
 * 项目信息
 */
@Data
public class Project {
    private Integer id;//项目id
    private String name;//项目名称
    private String userId;//管理项目的用户id,实际上是一个json字符串存储了List<Integer>
    private String userIds;//组员id,实际上是一个json字符串存储了List<Integer>
    private String describe;//项目描述
    private String token;//项目唯一标识码,用来加入项目
}

InterfaceGroup  

/**
 * 接口分组
 */
@Data
public class InterfaceGroup {
    private Integer id;//接口组id
    private String name;//接口分组名称
    private String describe;//接口分钟描述
    private Integer projectId;//所属项目id
}

 MyInterface 

/**
 * 接口
 */
@Data
public class MyInterface {
    private Integer id;//接口id
    private String name;//接口名称
    private String type;//请求类型
    private String path;//接口路径
    private Integer status;//接口完成状态 1:完成 0 :未完成
    private Integer groupId;//接口所属组别id
}

 InterfaceDetail 

**
 * 接口详细id
 */
@Data
public class InterfaceDetail {
    private Integer id;//接口详细id
    private String describe;//描述
    private String heads;//请求头参数,实际为json字符串,储存list<interfaceParm>
    private String body;//请求体参数,实际为json字符串
    private String query;//请求路径参数,实际为json字符串
    private String returnValue;//返回数据格式,实际为json字符串
    private LocalDateTime createTime;//接口创建时间

    private LocalDateTime updateTime;//接口更新时间

    private Integer createId;//接口创建人id

    private Integer updateId;//接口跟新人id

    private Integer integerId;//所属接口id
}

 interfaceParam 

/**
 * 请求参数
 */
public class interfaceParam {
    private String name;//参数名称
    private String type;//参数类型
    private String status;//是否为必须参数 1:必须 0:非必须
    private String description;//参数描述
}

枚举类准备 

RequestType 

/**
 * 请求类型
 */
public enum RequestType {
    POST,
    GET,
    DELETE,
    PUT,
}

 ParamType 

/**
 * 请求参数类型
 */
public enum ParamType {
    STRING,
    NUMBER,
    ARRAY,
    OBJECT,
    INTEGER,
    BOOLEAN
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467724.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++——字符串、读写文件、结构体、枚举

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

高架学习笔记之信息系统分类概览

目录 零、前言 一、业务处理系统(TPS) 概念 功能 特点 二、管理信息系统(MIS) 概念 功能 组成 三、决策支持系统(DSS) 概念 功能 特点 组成 1. 数据仓库 2. 数据挖掘工具 3. 决策模型 4. 可视化界面 四、专家系统(ES) 概念 特点 组成 求解过程 专家系统…

【已解决】在pycharm终端无法激活conda环境,但在cmd命令行中可以

一、问题描述 在windows下winr启动cmd命令行&#xff0c;可以成功运行conda命令并且激活环境在pycharm中打开Terminal终端&#xff0c;发现无法运行conda和pip命令&#xff0c;报错环境无法激活 无法在管道中间运行文档: D:\software\Anaconda3\condabin\conda.bat。 所在位置…

docxTemplater——从word模板生成docx文件

官网文档&#xff1a;Get Started (Browser) | docxtemplater 官网在线演示&#xff1a;Demo of Docxtemplater with all modules active | docxtemplater 源码&#xff1a;https://github.com/open-xml-templating/docxtemplater 不仅可以处理word&#xff08;免费&#xf…

顶顶通呼叫中心中间件-群集配置方法讲解(mod_cti基于FreeSWITCH)

群集介绍 比较多的外呼或呼入系统&#xff0c;假如整个系统需要1万并发&#xff0c;单机最高就3000-5000并发&#xff0c;这时就需要多机群集了。顶顶通呼叫中心中间件使用redis数据库&#xff0c;多个FreeSWITHC(mod_cti)连接同一个redis就可以很容易的配置成群集系统。 想了…

mac清除dns缓存指令 mac清除缓存怎么清理

你是否曾经被要求清理dns缓存并刷新&#xff1f;清理dns缓存一般是由于修改了主机文件&#xff0c;或者想排除一些网络上的故障。在Mac上清除dns缓存需要使用命令行来实现。在本文中&#xff0c;软妹子将向大家介绍mac清除dns缓存指令&#xff0c;并展示mac清除缓存怎么清理。 …

【物联网应用】基于云计算的智能化温室种植一体化平台

目录 第一章 作品概述 1.1. 作品名称 1.2. 应用领域 1.3.主要功能 1.4.创新性说明 第二章 需求分析 2.1 现实背景 2.2 用户群体及系统功能 2.3 竞品分析 第三章 技术方案 3.1. 硬件组成与来源 3.2. 硬件设计合理性 3.3. 硬件系统设计图 3.4. 接口的通用性与可扩展性 3.5. 代码规…

【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列三:Faster R-CNN图文详解

【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列二&#xff1a;Fast R-CNN图文详解 概念预设 感受野 感受野(Receptive Field) 是指特征图上的某个点能看到的输入图像的区域。 神经元感受野的值越大表示其能接触到的原始图像范围就越大&#xff0c;也意味着它…

【随笔】汇编(寄存器、内存模型、常用指令、语法)

文章目录 一、简介二、寄存器三、内存模型3.1 Heap3.2 Stack 四、指令4.1 示例4.2 语法4.3常用指令 一、简介 汇编语言&#xff08;英语&#xff1a;assembly language&#xff09;是任何一种用于电子计算机、微处理器、微控制器&#xff0c;或其他可编程器件的低级语言。在不…

项目打包部署流程(前后端本地打包部署)

本地部署 后端 首先打成jar包&#xff0c;尝试在本地运行 由于项目是maven父子工程 首先要把父项目进行install 配置好jdk环境&#xff08;两套环境可选&#xff09;这里使用的是jdk17 path中把java的环境置顶 查看当前jdk环境&#xff08;保证正确的jdk环境&#xff09; 在…

以太坊开发学习-solidity(二)值类型

文章目录 第一个Solidity程序编译并部署代码变量值类型1. 布尔型2. 整型3. 地址类型4. 定长字节数组 第一个Solidity程序 开发工具&#xff1a;remix 本教程中&#xff0c;我会用remix来跑solidity合约。remix是以太坊官方推荐的智能合约开发IDE&#xff08;集成开发环境&#…

斯坦福大学推出pyvene:开创性的AI模型干预Python库

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

python讲解(3)

目录 一.类型的意义 二.动态静态类型 三.程序的输入和输出 输出&#xff1a; 输入&#xff1a; 四.运算符 算术运算符 % ** // 关系运算符 一.类型的意义 1.区别 不同的类型占据不同的内存&#xff0c;单位是字节int 默认是4个字节&#xff0c;根据需要动态扩…

Vue2(五):收集表单数据、过滤器、自定义指令、Vue的生命周期

一、收集表单数据 爱好&#xff1a;学习<input type"checkbox" value"study" v-model"hobby">打游戏<input type"checkbox" value"games" v-model"hobby">吃饭<input type"checkbox" v…

前端安全——最新:lodash原型漏洞从发现到修复全过程

人生的精彩就在于你永远不知道惊喜和意外谁先来&#xff0c;又是一个平平无奇的早晨&#xff0c;我收到了一份意外的惊喜——前端某项目出现lodash依赖原型污染漏洞。咋一听&#xff0c;很新奇。再仔细一看&#xff0c;呕吼&#xff0c;更加好奇了~然后就是了解和修补漏洞之旅。…

C++开发基础——类对象与构造析构

一、基础概念 类&#xff1a;用户自定义的数据类型。 对象&#xff1a;类类型的变量&#xff0c;类的实例。 类的成员&#xff1a;成员变量和成员函数。 成员变量&#xff1a;类中定义的变量。 成员函数&#xff1a;类中定义的函数。 定义类的代码样例&#xff1a; class…

带你深入了解数据库的事务

为什么要使用事务 日常开发中&#xff0c;很多操作&#xff0c;不是通过一个SQL就能完成的&#xff0c;往往需要多个SQL配合完成 当执行多个SQL操作的时候&#xff0c;如果中间出现了特殊的情况&#xff08;程序崩溃&#xff0c;系统奔溃&#xff0c;网络断开&#xff0c;主机…

大数据任务调度平台选型建议

一 背景 数仓建设过程中&#xff0c;随着业务发展&#xff0c; ETL 任务调度越来越多&#xff0c;并且这些任务的形态多种多样。怎么样让大量的 ETL 任务准确的完成调度而不出现问题&#xff0c;甚至在任务调度执行中出现错误的情况下&#xff0c;任务能够完成自我恢复甚至执行…

分治法排序:原理与C语言实现

分治法排序&#xff1a;原理与C语言实现 一、分治法与归并排序概述二、归并排序的C语言实现三、归并排序的性能分析四、归并排序的优化 在计算机科学中&#xff0c;分治法是一种解决问题的策略&#xff0c;它将一个难以直接解决的大问题&#xff0c;分割成一些规模较小的相同问…

前后端分离项目部署服务器教程--实践成功

文章目录 项目介绍流程1租界云服务2通过远程软件连接服务器3部署前后端代码停止功能文件 环境配置1.安装jdk2.安装Nginx3.安装mysql数据库 花了将近一天部署前后端的项目&#xff0c;写一个日志记录一下&#xff0c;话说孰能生巧。明天把服务器恢复初始在部署一下。 项目介绍 …