AlexRomeo
发布于 2024-06-19 / 323 阅读
1
0

MagicAPI部署

步骤

新建项目

image-20240619190623332

选择工具

image-20240619190824901

修改项目中JDK17版本到JDK8

5b56d49d98e87273b498d2d9f1cc4db

6652e66b0e9fb6f9f78e6d59a895cdb

07d17b34e6d9324d97f36e65fcf87de

image-20240619191438493

image-20240619191547544

修改pom文件

<?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.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>net.alexromeo</groupId>
    <artifactId>magic-api-alexversion</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>magic-api-alexversion</name>
    <description>magic-api-alexversion</description>
    <properties>
        <java.version>8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.ssssssss</groupId>
            <artifactId>magic-api-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

修改application

文件application.properties后缀先修改为yml

server:
  port: 9900

spring:
  datasource:
    name: magic
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.215.246:3306/magic-api-demo
    username: admin
    password: adminroot

magic-api:
  web: /magic/web # UI请求的界面以及UI服务地址
  resource: #配置存储方式
    type: database # 配置存储在数据库中
    tableName: magic_api_file # 数据库中的表名
#    datasource: magic #指定数据源(单数据源时无需配置,多数据源时默认使用主数据源,如果存在其他数据源中需要指定。)
    prefix: /magic-api # key前缀
    readonly: false # 是否是只读模式
  prefix: / # 接口前缀,可以不配置
  auto-import-module: db  # 自动导入的模块
  auto-import-package: java.lang.*,java.util.* #自动导包
  allow-override: false #禁止覆盖应用接口
  sql-column-case: camel #启用驼峰命名转换
  editor-config: classpath:./magic-editor.js #编辑器配置
  support-cross-domain: true # 跨域支持,默认开启
  secret-key: 123456789 # 远程推送时的秘钥,未配置则不开启推送
  push-path: /_magic-api-sync #远程推送的路径,默认为/_magic-api-sync
  show-sql: true #配置打印SQL
  compile-cache-size: 500 #配置编译缓存容量
  persistence-response-body: true #是否持久化保存ResponseBody
  date-pattern: # 配置请求参数支持的日期格式
    - yyyy-MM-dd
    - yyyy-MM-dd HH:mm:ss
    - yyyyMMddHHmmss
    - yyyyMMdd
  response: |- #配置JSON格式,格式为magic-script中的表达式
    {
      code: code,
      message: message,
      data,
      timestamp,
      requestTime,
      executeTime,
    }
  response-code:
    success: 1 #执行成功的code值
    invalid: 0 #参数验证未通过的code值
    exception: -1 #执行出现异常的code值
  banner: true # 打印banner
  thread-pool-executor-size: 8 # async语句的线程池大小
  throw-exception: false #执行出错时是否抛出异常
  backup: #备份相关配置
    enable: true #是否启用
    max-history: -1 #备份保留天数,-1为永久保留
#    datasource: magic  #指定数据源(单数据源时无需配置,多数据源时默认使用主数据源,如果存在其他数据源中需要指定。)
    table-name: magic_api_backup #使用数据库存储备份时的表名
  crud: # CRUD相关配置
    logic-delete-column: deleted #逻辑删除列
    logic-delete-value: 1 #逻辑删除值
  cache: # 缓存相关配置
    capacity: 10000 #缓存容量
    ttl: -1 # 永不过期
    enable: true # 启用缓存
  page:
    size: size # 页大小的参数名称
    page: page # 页码的参数名称
    default-page: 1 # 未传页码时的默认首页
    default-size: 10 # 未传页大小时的默认页大小
  security: # 安全配置
    username: admin # 登录用的用户名
    password: 123456 # 登录用的密码
  swagger:
    version: 1.0
    description: MagicAPI 接口信息
    title: MagicAPI Swagger Docs
    name: MagicAPI 接口
    location: /v2/api-docs/magic-api/swagger2.json
  debug:
    timeout: 60 # 断点超时时间,默认60s

magic-editor.js配置

此项也可以不配置,无非就是英雄少了皮肤,不影响您的细节操作,暴力输出。

如配置的话,js文件的名称需要与application.yml中editor-config: classpath:./magic-editor.js的名称相同,否则启动后无效。

var MAGIC_EDITOR_CONFIG = {
    title: 'magic-api-alex',
    theme: 'default',
    defaultExpand: true,
    checkUpdate: true,
    blockClose: true,   // 是否阻止离开页面
    autoSave: true,
    decorationTimeout: 10000,
    logMaxRows: Infinity,
    editorFontFamily: 'JetBrainsMono, Consolas, "Courier New",monospace, 微软雅黑',
    editorFontSize: 30,
    fontLigatures: true,
    header: {
        skin: true,    // 屏蔽皮肤按钮
        document: true,    // 屏蔽文档按钮
        repo: true,    // 屏蔽gitee和github
        qqGroup: true  // 屏蔽加入QQ群
    },
    themes: {
        editor: {
            base: 'vs-dark',
            rules: [
                {foreground: 'A9B7C6'},
                {token: 'keywords', foreground: 'CC7832', fontStyle: 'bold'},
                {token: 'keyword', foreground: 'CC7832', fontStyle: 'bold'},
                {token: 'number', foreground: '6897BB'},
                {token: 'string', foreground: '6A8759', fontStyle: 'bold'},
                {token: 'string.sql', foreground: '6A8759'},
                {token: 'tag.sql', foreground: 'E8BF6A'},
                {token: 'attribute.name.sql', foreground: 'BABABA'},
                {token: 'attribute.value.sql', foreground: '6A8759'},
                {token: 'predefined.sql', foreground: 'A9B7C6', fontStyle: 'italic'},
                {token: 'predefined.magicscript', foreground: 'A9B7C6', fontStyle: 'italic'},
                {token: 'key', foreground: '9876AA'},
                {token: 'string.key.json', foreground: '9876AA'},
                {token: 'string.value.json', foreground: '6A8759'},
                {token: 'keyword.json', foreground: '6897BB'},
                {token: 'operator.sql', foreground: 'CC7832', fontStyle: 'bold'},
                {token: 'string.invalid', foreground: '008000', background: 'FFCCCC'},
                {token: 'string.escape.invalid', foreground: '008000', background: 'FFCCCC'},
                {token: 'string.escape', foreground: '000080', fontStyle: 'bold'},
                {token: 'comment', foreground: '808080', fontStyle: 'italic'},
                {token: 'comment.doc', foreground: '629755', fontStyle: 'italic'},
                {token: 'comment.todo', foreground: 'A8C023', fontStyle: 'italic'},
                {token: 'string.escape', foreground: 'CC7832'}
            ],
            colors: {
                'editor.background': '#2B2B2B',
                'editorLineNumber.foreground': '#999999',   //行号的颜色
                'editorGutter.background': '#313335',   //行号背景色
                'editor.lineHighlightBackground': '#323232',    //光标所在行的颜色
                'dropdown.background': '#3C3F41',   //右键菜单
                'dropdown.foreground': '#BBBBBB',   //右键菜单文字颜色
                'list.activeSelectionBackground': '#4B6EAF',    //右键菜单悬浮背景色
                'list.activeSelectionForeground': '#FFFFFF',    //右键菜单悬浮文字颜色
                'editorSuggestWidget.selectedBackground': '#113A5C' //代码提示选中行的背景色
            }
        },
        styles: {
            'main-background-color': '#3C3F41', // 主要背景色
            'main-border-color': '#323232', // 主要边框色
            'main-color': '#bbb',   // 主要文字颜色
            'main-selected-background-color': '#323232',    // 主要选中背景色
            'main-hover-background-color': '#353739',   // 主要悬浮背景色
            'main-hover-icon-background-color': '#4C5052',  // 主要悬浮图标背景色
            'main-selected-color': '#fff',  // 主要选中文字颜色
            'main-icon-color': '#AFB1B3',   // 主要图标颜色

            'header-title-color': '#bbb',   // 顶部名字颜色
            'header-version-color': '#999', // 顶部版本号颜色
            'header-default-color': '#AFB1B3',  // 顶部其它文字颜色

            'empty-background-color': '#282828',    // 中间空的背景颜色
            'empty-key-color': '#489DF6',   // 中间空的快捷键文字颜色
            'empty-color': '#A0A0A0',   // 中间空的文字颜色

            'button-hover-background-color': '#365880', //  按钮悬浮背景颜色
            'button-hover-border-color': '#43688C', //  按钮悬浮边框颜色
            'button-background-color': '#4C5052',   // 按钮背景颜色
            'button-border-color': '#5E6060',   // 按钮边框颜色
            'button-disabled-color': '#5a5a5a', //  按钮禁用时的颜色

            'navbar-body-background-color': '#3C3F41',  // 导航条内容背景颜色
            'navbar-body-border-color': '#555555',  //导航条内边框颜色
            'resource-label-color': '#bbb',     // 资源树形菜单label颜色
            'resource-span-color': '#787878',   // 资源树形菜单span颜色

            'tree-hover-background-color': '#0d293e',   // 树形菜单悬浮背景色
            'tree-icon-color': '#aeb9c0',   //  树形菜单图标颜色

            'table-border-color': '#646464',    // 表格边框颜色

            'input-border-color': '#646464',    // input边框颜色
            'input-foucs-color': '#3D6185',     // input focus边框颜色
            'input-background-color': '#45494A',    // input背景颜色

            'select-background-color': '#3C3F41',   // select背景颜色
            'select-hover-background-color': '#3C3F41', // select悬浮背景色
            'select-option-background-color': '#3C3F41',    // select选项背景色
            'select-option-hover-background-color': '#4B6EAF',  // select选项悬浮背景色
            'select-option-border-color': '#808080',    // select选项边框色

            // 数据类型颜色
            'data-type-default-color': '#a9b7c6',
            'data-type-string-color': '#6a8759',
            'data-type-integer-color': '#6897bb',
            'data-type-byte-color': '#6897bb',
            'data-type-long-color': '#6897bb',
            'data-type-float-color': '#6897bb',
            'data-type-double-color': '#6897bb',
            'data-type-short-color': '#6897bb',
            'data-type-number-color': '#6897bb',
            'data-type-boolean-color': '#cc7832',
            'data-type-class-color': '#9876aa',
            'data-type-key-color': '#FF8E8E',


            'run-log-background-color': '#2b2b2b',  // 运行日志背景颜色
            // 日志级别颜色
            'log-level-info': '#ABC023',
            'log-level-error': '#CC666E',
            'log-level-debug': '#299999',
            'log-level-warn': 'unset',
            'log-level-trace': '#5394EC',
            'log-color-cyan': '#009191',
            'log-color-link': '#287BDE',

            'todo-color': '#A8C023',

            'debug-line-background-color': '#2D6099',   // 调试时,断点行背景颜色
            'breakpoints-background-color': '#C75450',  // 断点圆圈背景颜色
            'breakpoint-line-background-color': '#3a2323',  // 断点所在行的背景颜色

            'select-inputable-background-color': '#45494a', // select输入框背景颜色
            'select-inputable-border': 'transparent',

            'tab-selected-background-color': '#4E5254', // tab 选中时的背景颜色

            'message-em-color': '#68dd9a',  // 消息 em 颜色

            'checkbox-background-color': '#43494A',
            'checkbox-border-color': '#6B6B6B',
            'checkbox-text-color': '#bbb',
            'checkbox-selected-background-color': '#43494A',
            'checkbox-selected-border-color': '#6B6B6B',

            'toolbox-list-label-color': '#bbb',
            'toolbox-list-span-color': '#787878',
            'toolbox-border-color': '#323232',
            'toolbox-list-hover-background': '#0D293E',
            'toolbox-border-right-color': '#555555',
            'footer-border-color': '#323232',
            'tab-bar-border-color': '#323232',
            'dialog-border-color': '#282828',
            'dialog-shadow-color': '#151515',
            'table-col-border-color': '#333638',
            'table-row-border-color': '#333638',
            'table-hover-background': '#4B6EAF',
            'debug-line-background': '#2D6099',
            'breakpoints-background': '#C75450',
            'breakpoint-line-background': '#3a2323',
            'table-even-background': '#414547',
            'button-disabled-background': '#5A5A5A',
            'toolbox-list-header-icon-color': '#AFB1B3',
            'log-error-color': '#CC666E',
            'text-string-color': '#6A8759',
            'text-number-color': '#6897BB',
            'text-boolean-color': '#CC7832',
            'text-property-color': '#9876aa',
            'text-key-color': '#9876aa',
            'suggest-hover-background': '#113A5C',
            'suggest-hover-color': '#fff',
            'statusbar-em-color': '#68dd9a',
        }
    }
}

创建表

magic_api_file

CREATE TABLE `magic_api_file` (
  `file_path` varchar(512) NOT NULL,
  `file_content` mediumtext,
  PRIMARY KEY (`file_path`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

magic_api_backup

CREATE TABLE `magic_api_backup` (
  `id` varchar(32) NOT NULL COMMENT '原对象ID',
  `create_date` bigint(13) NOT NULL COMMENT '备份时间',
  `tag` varchar(32) DEFAULT NULL COMMENT '标签',
  `type` varchar(32) DEFAULT NULL COMMENT '类型',
  `name` varchar(64) DEFAULT NULL COMMENT '原名称',
  `content` blob COMMENT '备份内容',
  `create_by` varchar(64) DEFAULT NULL COMMENT '操作人',
  PRIMARY KEY (`id`,`create_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

评论