StringBoot 集成 Magic-Api

时间:2024-05-02 07:04:46

Magic-Api 简介:

  magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口。 无需定义ControllerServiceDaoMapperXMLVO等Java对象即可完成常见的HTTP API接口开发。

Magic-Api 官网:https://www.ssssssss.org/magic-api

Magic_api语法简介:

1. 分页

import request;

var result = db.camel().page(""" 

""")

return {
    current:page,
    optimizeCountsql: true,
    pages:ceil(result.total::double / size::double ),
    records: result.list == null ? [] : result.list,
    searchCount: true,
    size: size,
    total:result.total
}

2. 列表

return db.camel().select(""" 

""")

3. 批量

import request;

var tx = db.transaction();
try {
    for (val in body) {
    
    }
    tx.commit();
} catch(e) {
    tx.rollback();
    exit 400, '数据操作出错,回滚事务';
}

4. 新增

return db.insert("""

""" )

5. 修改

return db.update("""

""")

6. 删除

return db.update("""

""")

7. 逻辑

var count = db.selectInt("""
    
""");

if (count  == 0) {
    return db.insert("""
        
    """)
} else if (count  == 1) {
    return db.update("""

    """)
} else {
    exit 400, '数据异常';
}

项目实战:

1. 引入依赖包

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

2. 配置参数

magic-api:
  security:   # 安全配置
    username: admin    # 登录用的用户名
    password: 123456   # 登录用的密码
  show-url: true  #配置打印SQL
  response-code:
    success: 200 #执行成功的code值
    invalid: 400 #参数验证未通过的code值
    exception: 500 #执行出现异常的code值
  response: |- #配置JSON格式,格式为magic-script中的表达式
    {
      code: code,
      message: message,
      data,
      extra:executeTime
    }
  web: /magic/web #配置web页面入口
  resource:
    #配置文件存储位置。当以classpath开头时,为只读模式
    #mac用户请改为可读写的目录
    #如果不想存到文件中,可以参考配置将接口信息存到数据库、Redis中(或自定义)
    #location: D:/data/magic-api
    type: database # 配置存储在数据库中
    tableName: magic_api_file # 数据库中的表名
    prefix: /magic-api # key前缀
    readonly: false # 是否是只读模式

3. 数据库文件初始化

CREATE TABLE "public"."magic_api_file" (
  "file_path" varchar(512) COLLATE "pg_catalog"."default" NOT NULL,
  "file_content" text COLLATE "pg_catalog"."default"
);

4. 项目启动