@@ -358,7 +358,7 @@ DELETE: <br > 删除数据 | base_url/delete/ | {<br > TableName:{<
358358 包含选项范围 | "key<\> ": Object => "key<\> ":[ Object] ,key对应值的类型必须为JSONArray,Object类型不能为JSON | [ "contactIdList<\> ":38710] ( http://apijson.cn:8080/get/{"User[]":{"count":3,"User":{"contactIdList<\> ":38710}}} ) ,对应SQL是` json_contains(contactIdList,38710) ` ,查询contactIdList包含38710的一个User数组
359359 判断是否存在 | "key}{@":{<br />   ;  ; "from":"Table",<br />   ;  ; "Table":{ ... }<br />}<br />其中:<br />}{ 表示 EXISTS;<br /> key 用来标识是哪个判断;<br /> @ 后面是 子查询 对象,具体见下方 子查询 的说明。 | [ "id}{@":{<br />   ;  ; "from":"Comment",<br />   ;  ; "Comment":{<br />   ;  ;   ;  ; "momentId":15 <br />   ;  ; }<br />}] ( http://apijson.cn:8080/get/{"User":{"id}{@":{"from":"Comment","Comment":{"momentId":15}}}} ) <br /> WHERE EXISTS(SELECT * FROM Comment WHERE momentId=15)
360360 远程调用函数 | "key()":"函数表达式",函数表达式为 function(key0,key1...),会调用后端对应的函数 function(JSONObject request, String key0, String key1...),实现 参数校验、数值计算、数据同步、消息推送、字段拼接、结构变换 等特定的业务逻辑处理,<br >可使用 - 和 + 表示优先级,解析 key-() > 解析当前对象 > 解析 key() > 解析子对象 > 解析 key+() | [ "isPraised()":"isContain(praiseUserIdList,userId)"] ( http://apijson.cn:8080/get/{"Moment":{"id":301,"isPraised()":"isContain(praiseUserIdList,userId)"}} ) ,会调用远程函数 boolean isContain(JSONObject request, String array, String value) ,然后变为 "isPraised": true 这种(假设点赞用户id列表包含了userId,即这个User点了赞)
361- 存储过程 | "@key ()":"SQL函数表达式",函数表达式为 <br /> function(key0,key1...) <br /> 会调用后端数据库对应的存储过程 SQL函数 <br /> function(String key0, String key1...) <br /> 除了参数会提前赋值,其它和 远程函数 一致 | [ "@limit ":10, <br /> "@offset ":0, <br /> "@procedure ()":"getCommentByUserId(id,@limit ,@offset )"] ( http://apijson.cn:8080/get/{"User":{"@limit":10,"@offset":0,"@procedure()":"getCommentByUserId(id,@limit,@offset)"}} ) <br /> 会转为 <br /> ` getCommentByUserId(38710,10,0) ` <br /> 来调用存储过程 SQL 函数 <br /> ` getCommentByUserId(IN id bigint, IN limit int, IN offset int) ` <br /> 然后变为 <br />"@ procedure ":{<br />   ;  ; "count":-1, <br />   ;  ; "update": false , <br />   ;  ; "list":[ ] <br /> } <br /> 其中 count 是指写操作影响记录行数,-1 表示不是写操作;update 是指是否为写操作(增删改);list 为返回结果集
361+ 存储过程 | "@key ()":"SQL函数表达式",函数表达式为 <br /> function(key0,key1...) <br /> 会调用后端数据库对应的存储过程 SQL函数 <br /> function(String key0, String key1...) <br /> 除了参数会提前赋值,其它和 远程函数 一致 | [ "@limit ":10, <br /> "@offset ":0, <br /> "@procedure ()":"getCommentByUserId(id,@limit ,@offset )"] ( http://apijson.cn:8080/get/{"User":{"@limit":10,"@offset":0,"@procedure()":"getCommentByUserId(id,@limit,@offset)"}} ) <br /> 会转为 <br /> ` getCommentByUserId(38710,10,0) ` <br /> 来调用存储过程 SQL 函数 <br /> ` getCommentByUserId(IN id bigint, IN limit int, IN offset int) ` <br /> 然后变为 <br />"procedure":{<br />   ;  ; "count":-1, <br />   ;  ; "update": false , <br />   ;  ; "list":[ ] <br /> } <br /> 其中 count 是指写操作影响记录行数,-1 表示不是写操作;update 是指是否为写操作(增删改);list 为返回结果集
362362 引用赋值 | "key@":"key0/key1/.../refKey",引用路径为用/分隔的字符串。以/开头的是缺省引用路径,从声明key所处容器的父容器路径开始;其它是完整引用路径,从最外层开始。<br /> 被引用的refKey必须在声明key的上面。如果对refKey的容器指定了返回字段,则被引用的refKey必须写在@column 对应的值内,例如 "@column ":"refKey,key1,..." | [ "Moment":{<br />   ;  ; "userId":38710<br />},<br />"User":{<br />   ;  ; "id@":"/Moment/userId"<br />}] ( http://apijson.cn:8080/get/{"Moment":{"userId":38710},"User":{"id@":"%252FMoment%252FuserId"}} ) <br /> User内的id引用了与User同级的Moment内的userId,<br />即User.id = Moment.userId,请求完成后<br > "id@":"/Moment/userId" 会变成 "id":38710
363363 子查询 | "key@":{<br />   ;  ; "range":"ALL", <br />   ;  ; "from":"Table",<br />   ;  ; "Table":{ ... }<br />}<br />其中:<br />range 可为 ALL,ANY;<br />from 为目标表 Table 的名称;<br />@ 后面的对象类似数组对象,可使用 count 和 join 等功能。 | [ "id@":{<br />   ;  ; "from":"Comment",<br />   ;  ; "Comment":{<br />   ;  ;   ;  ; "@column ":"min(userId)" <br />   ;  ; }<br />}] ( http://apijson.cn:8080/get/{"User":{"id@":{"from":"Comment","Comment":{"@column":"min(userId)"}}}} ) <br /> WHERE id=(SELECT min(userId) FROM Comment)
364364 模糊搜索 | "key$":"SQL搜索表达式" => "key$":[ "SQL搜索表达式"] ,任意SQL搜索表达式字符串,如 %key%(包含key), key%(以key开始), %k%e%y%(包含字母k,e,y) 等,%表示任意字符 | [ "name$":"%m%"] ( http://apijson.cn:8080/get/{"User[]":{"count":3,"User":{"name$":"%2525m%2525"}}} ) ,对应SQL是` name LIKE '%m%' ` ,查询name包含"m"的一个User数组
0 commit comments