APIJSON简单使用

APIJSON简单使用

作者: Grey

原文地址:APIJSON简单使用

介绍

APIJSON 是一种专为 API 而生的 JSON 网络传输协议 以及 基于这套协议实现的 ORM 库。为简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的万能 API。能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。适合中小型前后端分离的项目,尤其是 BaaS、Serverless、互联网创业项目和企业自用项目。

Gitee:https://gitee.com/Tencent/APIJSON

示例

Java端:https://gitee.com/greyzeng/apijson-sample

运行

准备数据库

DemoSQLConfig.java这个文件中提供了数据库的配置信息

需要配置:

  • 数据库的Schema
  • 数据库Version
  • 数据库连接的URI
  • 数据库的用户名密码

将/sql目录下的脚本文件导入数据库中。

增加依赖

将/libs目录下的jar包增加到项目的classpath中

启动项目

运行DemoApplication

测试

在Postman中新增一个POST请求,请求的URL是:

http://localhost:8080/get

请求的Body是:

{
  "Moment": {
    "id": 12
  }
}

返回的结果是:

{
  "Moment": {
    "id": 12,
    "userId": 70793,
    "date": "2017-02-08 16:06:11.0",
    "content": "APIJSON,let interfaces and documents go to hell !",
    "praiseUserIdList": [
      70793,
      93793,
      82044,
      82040,
      82055,
      90814,
      38710,
      82002,
      82006,
      1508072105320,
      82001
    ],
    "pictureList": [
      "http://static.oschina.net/uploads/img/201604/22172508_eGDi.jpg",
      "http://static.oschina.net/uploads/img/201604/22172507_rrZ5.jpg",
      "https://camo.githubusercontent.com/788c0a7e11a4f5aadef3c886f028c79b4808613a/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343932353935372d313732303737333630382e6a7067",
      "http://static.oschina.net/uploads/img/201604/22172507_Pz9Y.png",
      "https://camo.githubusercontent.com/c98b1c86af136745cc4626c6ece830f76de9ee83/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343930383036362d313837323233393236352e6a7067",
      "https://camo.githubusercontent.com/f513fa631bd780dc0ec3cf2663777e356dc3664f/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343733323232332d3337333933303233322e6a7067",
      "https://camo.githubusercontent.com/c98b1c86af136745cc4626c6ece830f76de9ee83/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343930383036362d313837323233393236352e6a7067",
      "https://camo.githubusercontent.com/f513fa631bd780dc0ec3cf2663777e356dc3664f/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343733323232332d3337333933303233322e6a7067"
    ]
  },
  "ok": true,
  "code": 200,
  "msg": "success",
  "sql:generate|cache|execute|maxExecute": "1|0|1|200",
  "depth:count|max": "1|5",
  "time:start|duration|end": "1611279884442|12|1611279884454"
}

更多的接口功能和查询语法见:

接口功能

功能符

新增一个接口

需求:假设我们需要新增一张数据表,并把数据表的数据快速发布出来

假设要增加的数据表如下:

-- 原石
CREATE TABLE `b_stone` (
                           `id` bigint(20) NOT NULL AUTO_INCREMENT,
                           `cost` int(10) NULL COMMENT '成本',
                           `price` int(10) NULL COMMENT '卖价',
                           `length` int(10) NULL,
                           `width`  int(10) NULL,
                           `height` int(10) NULL,
                           `weight` float(8,1) NULL,
  `creationdate` datetime default CURRENT_TIMESTAMP COMMENT '创建时间',
  `modifydate` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `modifier` varchar(80) NULL,
  PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

我们需要在model包下增加一个类:

package apijson.demo.model;

import apijson.MethodAccess;

@MethodAccess(
        POST = {UNKNOWN, ADMIN},
        DELETE = {ADMIN}
)
public class Stone {
}

在DemoSQLConfig中增加:

TABLE_KEY_MAP.put(Stone.class.getSimpleName(),"b_store");

配置表和实体类的映射

还需要在这个类中注册权限:

AbstractVerifier.ACCESS_MAP.put(Stone.class.getSimpleName(),getAccessMap(Stone.class.getAnnotation(MethodAccess.class)));

为了防止登录错误,我们可以提前先增加如下代码,DemoParser中,在每个构造方法执行完super()后增加:

setNeedVerify(false);

重启应用,POST请求:http://localhost:8080/get

body

{
  "Stone": {
    "id": 1
  }
}

返回

{
  "Stone": {
    "id": 1,
    "cost": 2,
    "price": 3,
    "length": 4,
    "width": 5,
    "height": 6,
    "weight": 7.0,
    "creationdate": "2021-01-22 10:00:56.0",
    "modifydate": "2021-01-22 10:01:00.0",
    "modifier": "8"
  },
  "ok": true,
  "code": 200,
  "msg": "success",
  "sql:generate|cache|execute|maxExecute": "1|0|1|200",
  "depth:count|max": "1|5",
  "time:start|duration|end": "1611282106759|10|1611282106769"
}

高级查询

数据修改

接口地址:http://localhost:8080/post

{
  "Moment": {
    "content": "今天天气不错,到处都是提拉米苏雪",
    "userId": 38710
  },
  "tag": "Moment"
}

因为可以修改数据,所以这里涉及到和登录的问题

权限配置问题

登录

接口的查询可以可以配置是否需要登录,登录接口:http://127.0.0.1:8080/login
发送请求

{
  "phone": "13000038710",
  "password": "666666"
}

账号和密码,可以到apijson_user表里面查询

生成接口文档

APIAuto

参考资料

apijson-doc

APIJSON-boot

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
APIJSON是一种专为API而生的JSON网络传输协议,以及基于这套协议实现的ORM库。 为 简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的API。 能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。 适合中小型前后端分离的项目,尤其是 BaaS、Serverless、互联网创业项目和企业自用项目。APIJSON 4.2.0-4.5.0 更新内容大幅提升增、删、改等写操作的性能; 增强对聚合函数 @having 的支持; 增强对原始 SQL 片段 @raw 的支持; 增强对 SQL 数学表达式的支持; 优化存储过程的返回字段格式; 解决 bug、增强安全、完善文档 等;通过自动化API,前端可以定制任何数据、任何结构! 大部分HTTP请求后端再也不用写接口了,更不用写文档了! 前端再也不用和后端沟通接口或文档问题了!再也不会被文档各种错误坑了! 后端再也不用为了兼容旧接口写新版接口和文档了!再也不会被前端随时随地没完没了地烦了!APIJSON特点功能1、在线解析 自动生成接口文档,清晰可读永远最新 自动校验与格式化,支持高亮和收展 自动生成各种语言代码,一键下载 自动管理与测试接口用例,一键共享 自动给请求JSON加注释,一键切换 2、对于前端 不用再向后端催接口、求文档 数据和结构完全定制,要啥有啥 看请求知结果,所求即所得 可一次获取任何数据、任何结构 能去除重复数据,节省流量提高速度 3、对于后端 提供通用接口,大部分API不用再写 自动生成文档,不用再编写和维护 自动校验权限、自动管理版本、自动防SQL注入 开放API无需划分版本,始终保持兼容 支持增删改查、模糊搜索、正则匹配、远程函数等
APIJSON是一种专为API而生的JSON网络传输协议,以及基于这套协议实现的ORM库。 为 简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的API。 能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。 适合中小型前后端分离的项目,尤其是 BaaS、Serverless、互联网创业项目和企业自用项目。 通过自动化API,前端可以定制任何数据、任何结构! 大部分HTTP请求后端再也不用写接口了,更不用写文档了! 前端再也不用和后端沟通接口或文档问题了!再也不会被文档各种错误坑了! 后端再也不用为了兼容旧接口写新版接口和文档了!再也不会被前端随时随地没完没了地烦了! 特点功能: 1、在线解析 自动生成接口文档,清晰可读永远最新 自动校验与格式化,支持高亮和收展 自动生成各种语言代码,一键下载 自动管理与测试接口用例,一键共享 自动给请求JSON加注释,一键切换 2、对于前端 不用再向后端催接口、求文档 数据和结构完全定制,要啥有啥 看请求知结果,所求即所得 可一次获取任何数据、任何结构 能去除重复数据,节省流量提高速度 3、对于后端 提供通用接口,大部分API不用再写 自动生成文档,不用再编写和维护 自动校验权限、自动管理版本、自动防SQL注入 开放API无需划分版本,始终保持兼容 支持增删改查、模糊搜索、正则匹配、远程函数等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreyZeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值