APIJSON

🏆 实时 零代码、全功能、强安全 ORM 库 🚀 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构 🏆 Real-Time coding-free, powerful and secure ORM 🚀 providing APIs and Docs without coding by Backend, and the returned JSON of API can be customized by Frontend(Client) users

OTHER License

Stars
17.2K
Committers
77

Server:
新增 @ combine:"key0,&key1,|key2,!key3,..." 支持与或非条件组合;
新增 TYPE:{ key:type } 校验值类型,JSON类型应用场景太窄已注释;
完善远程函数中取值类型错误的异常处理;

解决put/balance接口在未登录时返回错误不是未登录;

优化远程函数,传入request作为第一个参数可最大化灵活实现不同类型的取值,且不用再传参数类型;
优化AbstractParser.onArrayParse缓存取值后数组的性能;
AbstractSQLConfig.putWhere优化性能和条件顺序;

删除 @ condition,用 @ combine 替代;
删除 @ about,查看表和字段属性文档可用APIJSONAuto接口管理工具(查Table和Column),图形化界面更方便;
打包apijson-server2.5.5;

其它:
更新table;
更新通用文档;

Server:
引用赋值支持requestObject内提取字段后生成的数组,可实现粉丝动态等复杂关联关系的查询;
预编译模式下支持 key{}:"conditions" 实现部分简单的数学表达式;
新增初期APIJSON构思及实现文档的Windows版;

放宽Document的修改权限,解决APIJSONAuto不能更新测试标准;
解决MySQL CHAR类型字段转JSON报错;
解决引用赋值在引用requestObject内的值时,当类型为JSONObject时会忽略对应的条件;

解决数组内无意义的嵌套浪费性能;
当引用赋值引用requestObject里的对象{}时直接判断为无值;
优化headVerify的代码,方便调试;
删除图片,减少下载的压缩包大小;

APIJSON - 更新Demo中libs内的apijson-server.jar

Published by TommyLemon over 6 years ago

Server:
更新Demo中libs内的apijson-server.jar

APIJSON - 修复head请求中@column有多字段时的兼容问题

Published by TommyLemon over 6 years ago

Server:
解决head请求在@column校验未加isPrepared条件,以及有多个字段时出现的兼容问题

APIJSON - [安全]防SQL注入

Published by TommyLemon over 6 years ago

Server:
createStatement改为prepareStatement,statement预编译后再setString;

防止可能通过get/gets,head/heads,post,put,delete接口进行SQL注入;

防止可能通过SQLConfig中schema,table,group,having,order,column,values,content,where这些带有String类型值的参数进行SQL注入;

校验@column,@group,@order,@schema;

预编译模式下禁用key{}:"conditions"和@having:"conditions";

APIJSON - 新增 自动化接口回归测试

Published by TommyLemon over 6 years ago

Server:
新增测试记录-自动化接口回归测试;
更新table;

批量操作返回的id{}改为id[],方便解析成idList;
解决DemoVerifier传参visitor无效;
修正Controller login的注释错误
删除DemoParser多余的参数;
忽略IDE生成的文件;

Android:
APIJSONTest新增登录和退出;
所有ip地址改为域名url;
APIJSONTest解决不保存Auto界面修改后的request,优化默认id;

APIJSON - eclipse版和idea版合并为一个工程

Published by TommyLemon over 6 years ago

Server:
eclipse版和idea版合并为一个工程;

解决Library默认JDK是1.5;

优化pom配置,JDK都设置为1.8;
删除多余的文件;

同步 APIJSON后端部署 - Java 的文档;

APIJSON - Server:APIJSONLibrary打成jar包

Published by TommyLemon over 6 years ago

Server:
APIJSONLibrary打成jar包;

删除1.9.0备份(如有需要可下载旧版);

APIJSON - Server工程拆分为Library和Demo

Published by TommyLemon almost 7 years ago

Server:
工程拆分为Library和Demo;
数据库配置从SQLConfig移至SQLExecutor;
JSONObject内KEY_ID,KEY_USER_ID等的值可自定义;

解决 id{}: ["1' OR 1='1'))--"] 绕过id{}限制;
userId,userId{}在WHERE条件中强制置前,仅次于id,id{},提高安全和性能;
Structure新增校验userId和userId{}的值的类型;

优化table的类型和文档注释;
优化命名和注释;

Client:
新增Python版;

其它:
优化Readme文档;
换用全新的Logo和域名;

APIJSON - 完善工程、通用文档、在线工具等

Published by TommyLemon almost 7 years ago

Server:
禁用Table,Column,Test的增删改权限;
@ role:ONWER请求的userId和登录userId不符时抛异常;
更新table;

Android:
删除代码中的请求文档,全用APIJSON在线文档;

iOS:
在线工具新增自动生成Swift请求代码;

JavaScript:
整理JavaScript工程,引入Vue.js工程;
更新JS-Vue项目;

文档:
整理并优化文档;
新增Java后端、Android、iOS、JavaScript的部署文档;

其它:
更新图片;
删除多余的图片;

APIJSON - 新增iOS-Swift版demo

Published by TommyLemon almost 7 years ago

新增iOS-Swift版demo

APIJSON - 新增测试用例文档;提升安全性

Published by TommyLemon almost 7 years ago

Server:
新增测试用例文档,测试即文档
新增支持从requestObject中通过引用赋值来取值
Application新增测试Log

彻底解决普通对象包装表对象绕过Structure校验 key:{ Table: {}}
防止GETS通过"[]":{"@ role":"ADMIN"},"Table":{},"tag":"Table"绕过权限并能批量查询
解决注册失败

引用赋值不允许赋值后值为null
删除不需要的table并统一id类型
简化Controller中的Request注解

Client:
新增接口返回未登录时跳到登录界面
解决UserActivity编辑错位问题
解决登录界面自动填充上次登录账号失效

APIJSON - 新增自动化版本管理

Published by TommyLemon almost 7 years ago

Server:
新增自动化版本管理;
新增允许发送跨域凭据;

优化注册、登录、验证码、修改密码等接口;

Client:
优化验证码相关接口,如验证码登录、注册、改密码等;

APIJSON - 提升性能和安全性;新增功能

Published by TommyLemon about 7 years ago

Server:
新增Table-key1-key2...[]取值;
新增Request和Response的查询;

解决类型为JSON的column对应值为NULL导致引用赋值异常,范围无限;
解决@column中的AS和表达式限制;

优化WHERE条件连接,防SQL注入;
优化查询ResultSet中的字段处理,提高性能、解决_key:alias漏洞;

Client:
新增发动态;
与Server同步公共代码;
改服务器地址;

Web:
解决format返回格式错乱;
解决array示例格式化json错乱;

修改基地址;
优化代码;

README:
同步中文版至英文版

APIJSON - POST_GET改为GETS,POST_HEAD改为HEADS

Published by TommyLemon about 7 years ago

POST_GET改为GETS,POST_HEAD改为HEADS;
解决在数据库返回结果中所有column的值都为空时导致查询数据不全;

APIJSON - 接口全走HTTP POST;加强安全验证

Published by TommyLemon about 7 years ago

Server:
接口全走HTTP POST,Parser#parseRequest取消decode;
加强写操作安全验证:写操作必须要有where条件;批量写操作一次最多操作10条;
批量操作由返回id改为返回id{};
删除Wallet,新增Privacy;

解决部分情况下取关联路径对应的对象时对路径判断错误;
解决@about没权限;

优化SQLConfig中@about解析;
优化所有独立接口;
其它完善和优化;

Client:
简化JSONResponse,format只处理key;
优化JSONObject和JSONRequest,去除encode;
优化Test中CodeUtil代码;

APIJSON - 新增功能及完善优化

Published by TommyLemon about 7 years ago

新增支持通过id{}:[]修改和删除多条记录;
新增支持查询数据库表属性(Table)及表字段属性(Column);
新增支持校验 key?:"正则",key{}:"条件" ;
新增@ try,@ drop,@ correct,@ about等关键词;
新增在线测试html;

完善及优化SQL;
细分Parser内权限校验粒度;
StringUtil中正则相关完善及优化;

解决不能搜索中文;
解决server.JSONRequest#put非JSON String失败;
解决SQLExecutor中部分String类型被改变,导致身份证等过大的数字最后都解析为int最大值;
解决日期时间在数据库用TimeStamp,Model用String解决转为Long问题;

APIJSON - 新增JavaScript版;同步eclipse版至idea版

Published by TommyLemon over 7 years ago

Server:
1.新增session自动化管理;
2.新增Row级别自动化角色权限校验;
3.Table[]:[{Table:{Content0}},{Table:{Content1}},...] 去包装为 Table[]:[{Content0},{Content1},...];
4.新增表名映射,隐藏真实表名;
5.新增 @ schema 支持多数据库;
6.JSONResponse新增通用状态码code;
7.新增重置密码接口;
8.用 @ MethodAccess 和 @ MethodStructure 替代 @ APIJSONRequest ;
9.QueryConfig改为SQLConfig,QueryHelper改为SQLExecutor;
10.其它优化和bug修复。

Client:
1.为新服务端工程改版;
2.完成重置密码;
3.部分细节优化。

Server:
1.新增支持在Table内解析JSONObject(包括Table) 或 JSONArray;
2.优化非开放请求的结构校验;
3.允许跨域请求,JavaScript版已发布: https://github.com/TommyLemon/APIJSON-JS

Client:
1.新增扫描二维码码查看用户;
2.动态内容、评论内容 新增超链接(url,phone等)识别;

Badges
Extracted from project README
Stargazers over time
Related Projects