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

Bot releases are visible (Hide)

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