ApiJson快速入门

前言

        最近在正式迭代中插入了一个大屏演示项目,因为后端开发人员任务都安排满了,而演示项目逻辑比较简单,大多是直接查表就能搞定,所以只能想办法让前端直接和数据库交互,增加开发速度。在找工具时发现了ApiJson。尝试使用了一下,在这里和大家做一个分享。

        使用的详尽文档建议大家查阅官方文档,都是中文,也很详尽。本文主要是提炼了部分关键操作,帮助大家以最快的速度上手使用apiJson。

ApiJson介绍:

        可以简单理解它是一个可以直接通过api接口调用的ORM层框架。使用基本就是将ApiJson项目部署起来,然后直接通过API调用就能进行表的读写操作。

        官网地址:腾讯APIJSON官方网站

部署

        step1:

        进入项目的git地址,下载 APIJSONBoot。附地址:https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot

        step2:

        修改项目下的 DemoSQLConfig 为自己的数据库配置:

        

        step3:

        在数据库中执行一些初始化的sql脚本。脚本地址如下:

        https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server

        

        step4:

        启动项目(项目本身是一个springboot项目,启动方式,部署到环境的方式,都和普通的springboot项目一样)。

        **注:为了快速上手, DemoController中,加入如下代码,屏蔽掉登录校验 **

@Override
	public Parser<Long> newParser(HttpSession session, RequestMethod method) {
		return super.newParser(session, method).setNeedVerify(false);  // TODO 这里关闭校验,方便新手快速测试,实际线上项目建议开启
	}

使用

        1. 查询

        查询的接口统一为:http://localhost:端口号/get

        通过不同的入参,来实现不同的查询(有点儿像es的玩法)

        例如:在postman中,

        uri输入:http://localhost:端口号/get

        mothed:POST

        请求体:

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

        就可以查询到 数据库中 Moment表中,id=12的数据

        注意一个小坑,请求中的表名首字母必须是大写的,所以数据库如果大小写敏感,数据库表的首字母也需要大写。如果数据库表名是小写,则需要在 DemoSQLConfig中配置映射,将书库表名映射为首字母大写的名称才行

                1)简单查询

{
  "Moment": {  -- 表明,例如表名称为 Moment
    "id": 12,   -- 字段名和值 ,例如,id为12
    "desc":"haha"  -- 多字段查询,每个字段一行json
    "@Order":"id-"  -- 根据id降序 —代表降序 +升序,多个字段之间,隔开
  }
}

                2)字段过滤

{
  "Moment": {
    "id": 12,
    "@column": "content"  -- 可以用,隔开多个列名
  }
}

                3)查询多个数据,in语句使用

{
  "[]": {                                --- [] 代表查集合
    "Moment": {                          --- 表名
      "id{}": [12, 15, 32],              --- id的集合。{}可以理解成 条件是一个对象
      "@column": "id,date,content"       --- 查某几个列
    }
  }
}

               4)where条件中的逻辑运算符

这段语句等价于

select id,date,content:text fromg Moment where (id between 10 and 40 ) and id not in (12)

{
  "[]": {
    "Moment": {
      "id&{}": ">=10,<=40",
      "id!{}": [12],
      "@column": "id,date,content:text"
    }
  }
}

                5) 模糊搜索 

{
  "[]": {
    "Moment": {
      "content$": "%APIJSON%",            --- 模糊搜索
      "@column": "id,date,content:text"
    }
  }
}

                6)分页

{
  "[]": {
    "Moment": {
      "@column": "id,date,content,praiseUserIdList"
    },
    "page": 0,
    "count": 5        --- 注意,分页参数在 [] 下的一层,和表名同级
  }
}

                7) 组合查询

selet m.id, ,.data, m.userId, u.id, u.name from Monent m left join User u on m.userId = u,id

Monent 表的 userId 和 User表的 id关联,查询数据

{
  "[]": {
    "Moment": {
      "@column": "id,date,userId",
      "id": 12
    },
    "User": {
      "id@": "/Moment/userId",
      "@column": "id,name"
    }
  }
}

这种查询结果和我们平时sql不太一样,稍微看一下返回结果:

{
  "[]": [
    {          ------------------  这里开始 ---------------
      "Moment": {        -------- 一个数据内,把moment和user分开了
        "date": "2017-02-08 16:06:11.0",
        "id": 12,
        "userId": 70793
      },
      "User": {           --------- 这是关联的user对象 ----------
        "id": 70793,
        "name": "Strong"
      }
    }         ------------------这里结束 是一个数据 ---------------
  ],
  "code": 200,
  "msg": "success"
}

            

        8)分组及函数

这几个是apiJson支持的聚合函数

函数名说明
count统计分组下,某字段的个数
sum统计分组下,某字段的和
max统计分组下,某字段的最大值
min统计分组下,某字段的最小值
avg统计分组下,某字段的平均值

使用:

        直接用

{
  "[]": {
    "Moment": {
      "@column": "max(id):maxid"
    }
  }
}

        和分组一起用

{
  "[]": {
      "Sale":{
        "@column":"store_id;sum(amt):totAmt",
        "@group":"store_id"
      }
  }
}

        2.新增

uri改一下:http://localhost:8080/post

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

        3.修改

Mothed:PUT

{
  "Moment": {
    "id": 1544520921923,
    "content": "海洋动物数量减少,如果非吃不可,不点杀也是在保护它们"
  },
  "tag": "Moment"
}

        4.删除

Mothed:Delete

{
  "Moment": {
    "id": 1544520921923
  },
  "tag": "Moment"
}

其他

        本文知识简单的记录以下apiJson的一些使用,方便大家快速启动。详细内容看官网,很详细,我的例子也都是官网摘的        腾讯APIJSON官方网站

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值