• 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:

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

    使用

            1. 查询

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

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

            例如:在postman中,

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

            mothed:POST

            请求体:

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

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

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

                    1)简单查询

    1. {
    2. "Moment": { -- 表明,例如表名称为 Moment
    3. "id": 12 -- 字段名和值 ,例如,id为12
    4. }
    5. }

                    2)字段过滤

    1. {
    2. "Moment": {
    3. "id": 12,
    4. "@column": "content" -- 可以用,隔开多个列名
    5. }
    6. }

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

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

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

    这段语句等价于

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

    1. {
    2. "[]": {
    3. "Moment": {
    4. "id&{}": ">=10,<=40",
    5. "id!{}": [12],
    6. "@column": "id,date,content:text"
    7. }
    8. }
    9. }

                    5) 模糊搜索 

    1. {
    2. "[]": {
    3. "Moment": {
    4. "content$": "%APIJSON%", --- 模糊搜索
    5. "@column": "id,date,content:text"
    6. }
    7. }
    8. }

                    6)分页

    1. {
    2. "[]": {
    3. "Moment": {
    4. "@column": "id,date,content,praiseUserIdList"
    5. },
    6. "page": 0,
    7. "count": 5 --- 注意,分页参数在 [] 下的一层,和表名同级
    8. }
    9. }

                    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关联,查询数据

    1. {
    2. "[]": {
    3. "Moment": {
    4. "@column": "id,date,userId",
    5. "id": 12
    6. },
    7. "User": {
    8. "id@": "/Moment/userId",
    9. "@column": "id,name"
    10. }
    11. }
    12. }

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

    1. {
    2. "[]": [
    3. { ------------------ 这里开始 ---------------
    4. "Moment": { -------- 一个数据内,把moment和user分开了
    5. "date": "2017-02-08 16:06:11.0",
    6. "id": 12,
    7. "userId": 70793
    8. },
    9. "User": { --------- 这是关联的user对象 ----------
    10. "id": 70793,
    11. "name": "Strong"
    12. }
    13. } ------------------这里结束 是一个数据 ---------------
    14. ],
    15. "code": 200,
    16. "msg": "success"
    17. }

                    8)分组及函数

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

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

    使用:

            直接用

    1. {
    2. "[]": {
    3. "Moment": {
    4. "@column": "max(id):maxid"
    5. }
    6. }
    7. }

            和分组一起用

    1. {
    2. "[]": {
    3. "Sale":{
    4. "@column":"store_id;sum(amt):totAmt",
    5. "@group":"store_id"
    6. }
    7. }
    8. }

            2.新增

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

    1. {
    2. "Moment": {
    3. "content": "今天天气不错,到处都是提拉米苏雪",
    4. "userId": 38710
    5. },
    6. "tag": "Moment"
    7. }

            3.修改

    Mothed:PUT

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

            4.删除

    Mothed:Delete

    1. {
    2. "Moment": {
    3. "id": 1544520921923
    4. },
    5. "tag": "Moment"
    6. }

    其他

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

  • 相关阅读:
    【论文翻译】Rethinking Network Pruning—under the Pre-train and Fine-tune Paradigm
    面试:Hprof文件的裁剪
    重磅硬核 | 一文聊透对象在 JVM 中的内存布局,以及内存对齐和压缩指针的原理及应用
    河道采砂执法监管信息化平台:科技赋能,智慧监管
    JS操作字符串方法学习系列(1)-每天学习10个方法
    【ACL 2022】用于多标签文本分类的对比学习增强最近邻机制
    [13]javascript的类型检测的方法
    三维模型3DTile格式轻量化在数据存储的重要性分析
    【Adobe Illustrator 教程】2. 认识矩形工具并绘制一些马赛克图案
    RapidJson开源库使用
  • 原文地址:https://blog.csdn.net/jike920203/article/details/139425583