网站建设方面,苏州网络科技公司建网站,马鞍山网站建设公司排名,西部数码个人网站APIJSON
APIJSON 是一个功能强大的 JSON 传输协议和 ORM 库#xff0c;它允许前端#xff08;客户端#xff09;定制返回 JSON 的数据和结构#xff0c;而后端无需编写任何代码即可提供 API 接口和文档。该项目由腾讯开源#xff0c;已成为腾讯内部使用广泛的开源项目之一…APIJSONAPIJSON 是一个功能强大的 JSON 传输协议和 ORM 库它允许前端客户端定制返回 JSON 的数据和结构而后端无需编写任何代码即可提供 API 接口和文档。该项目由腾讯开源已成为腾讯内部使用广泛的开源项目之一。功能特性对于前端灵活定制返回内容可以指定需要返回的字段、表关联、过滤条件等无需后端为每个需求单独开发接口减少请求次数单次请求可以获取多个相关对象或数组减少网络请求次数结构清晰易用使用 JSON 格式结构清晰易于理解和调试对于后端零代码开发无需为每个表编写增删改查接口只需配置数据库表和权限即可自动生成文档接口文档自动生成无需手动维护支持多种数据库支持 MySQL、PostgreSQL、SQL Server、Oracle、DB2、TiDB、MariaDB 等多种数据库强大的查询能力支持简单查询、统计、分组、排序、聚合、比较、筛选字段、字段别名等功能安全可靠提供完整的权限控制和参数校验机制安装指南Maven 依赖在pom.xml中添加 JitPack 仓库和 APIJSON 依赖repositoriesrepositoryidjitpack.io/idurlhttps://jitpack.io/url/repository/repositoriesdependencygroupIdcom.github.Tencent/groupIdartifactIdAPIJSON/artifactIdversionLATEST/version/dependencyGradle 依赖在项目根目录build.gradle中添加allprojects { repositories { maven { url https://jitpack.io } } }在模块build.gradle中添加dependencies { implementation com.github.Tencent:APIJSON:latest }环境要求JDK 1.8MySQL 5.7 / PostgreSQL 9.5 / Oracle 12C 或其他支持的数据库Maven 3.0 或 Gradle使用说明基础查询示例获取单个用户请求{User:{id:38710}}响应{User:{id:38710,sex:0,name:TommyLemon,tag:AndroidJava,head:http://static.oschina.net/uploads/user/1218/2437072_100.jpg?t1461076033000,date:1485948110000,pictureList:[http://static.oschina.net/uploads/user/1218/2437072_100.jpg?t1461076033000,http://common.cnblogs.com/images/icon_weibo_24.png]},code:200,msg:success}获取用户列表请求{[]:{count:3,User:{column:id,name}}}响应{[]:[{User:{id:38710,name:TommyLemon}},{User:{id:70793,name:Strong}},{User:{id:82001,name:Android}}],code:200,msg:success}复杂查询示例支持关联查询、分组、排序、聚合函数等复杂操作{Moment:{column:id,userId,content,id{}:0,order:id-},User:{column:id,name,id:/Moment/userId}}事务操作一个 JSON 请求可以同时支持新增、修改、删除、查询等多种操作{post:Moment,Comment:cArray[],User:u,Moment:{content:测试内容},Comment:cArray[]:[{content:评论1}],get:User,User:u:{id:82001}}核心代码JSON 工具类/*Copyright (C) 2020 Tencent. All rights reserved.*/packageapijson;importjava.util.Collection;importjava.util.LinkedHashMap;importjava.util.List;importjava.util.Map;/** * JSON工具类 防止解析时异常 * author Lemon */publicclassJSON{staticfinalStringTAGJSON;publicstaticJSONParser?extendsMapString,Object,?extendsListObjectDEFAULT_JSON_PARSER;// 创建JSON对象publicstaticMextendsMapString,ObjectMcreateJSONObject(){returnDEFAULT_JSON_PARSER.createJSONObject();}// 解析JSON字符串publicstaticMapString,ObjectparseObject(Objectjson){returnDEFAULT_JSON_PARSER.parseObject(json);}// 将对象转换为JSON字符串publicstaticStringtoJSONString(Objectobj){returnDEFAULT_JSON_PARSER.toJSONString(obj);}}JSON 请求接口/*Copyright (C) 2020 Tencent. All rights reserved.*/packageapijson;importjava.util.List;importjava.util.Map;/** * 请求JSON包装器 * author Lemon */publicinterfaceJSONRequestMextendsMapString,Object,LextendsListObjectextendsJSONMapM,L{publicstaticfinalStringKEY_TAGtag;// 只在最外层publicstaticfinalStringKEY_VERSIONversion;// 只在最外层publicstaticfinalStringKEY_FORMATformat;// 只在最外层// 设置标签defaultJSONRequestM,LsetTag(Stringtag){returnputs(KEY_TAG,tag);}// 设置版本defaultJSONRequestM,LsetVersion(Integerversion){returnputs(KEY_VERSION,version);}// 设置格式defaultJSONRequestM,LsetFormat(Booleanformat){returnputs(KEY_FORMAT,format);}}SQL 配置类/*Copyright (C) 2020 Tencent. All rights reserved.*/packageapijson.orm;importapijson.RequestMethod;importjava.util.List;importjava.util.Map;/** * SQL配置接口 * author Lemon */publicinterfaceSQLConfigT,MextendsMapString,Object,LextendsListObject{// 支持的数据库类型StringDATABASE_MYSQLMYSQL;StringDATABASE_POSTGRESQLPOSTGRESQL;StringDATABASE_SQLSERVERSQLSERVER;StringDATABASE_ORACLEORACLE;StringDATABASE_DB2DB2;// 获取表名StringgetTable();// 获取别名StringgetAlias();// 获取数据库类型StringgetDatabase();// 获取schemaStringgetSchema();// 获取请求方法RequestMethodgetMethod();// 设置请求方法SQLConfigT,M,LsetMethod(RequestMethodmethod);}解析器接口/*Copyright (C) 2020 Tencent. All rights reserved.*/packageapijson.orm;importapijson.RequestMethod;importjava.util.List;importjava.util.Map;/** * 解析器接口 * author Lemon */publicinterfaceParserT,MextendsMapString,Object,LextendsListObject{// 获取访问者VisitorTgetVisitor();// 设置访问者ParserT,M,LsetVisitor(VisitorTvisitor);// 获取请求方法RequestMethodgetMethod();// 设置请求方法ParserT,M,LsetMethod(RequestMethodmethod);// 解析请求MparseResponse(Mrequest);// 执行SQLMexecuteSQL(SQLConfigT,M,Lconfig,booleanisSubquery)throwsException;}远程函数解析器/*Copyright (C) 2020 Tencent. All rights reserved.*/packageapijson.orm;importjava.util.List;importjava.util.Map;importapijson.JSONMap;/** * 远程函数解析器 * author Lemon */publicinterfaceFunctionParserT,MextendsMapString,Object,LextendsListObject{// 调用函数Objectinvoke(Stringfunction,McurrentObject)throwsException;// 获取解析器ParserT,M,LgetParser();// 设置解析器FunctionParserT,M,LsetParser(ParserT,M,Lparser);// 获取请求方法RequestMethodgetMethod();// 设置请求方法FunctionParserT,M,LsetMethod(RequestMethodmethod);// 获取当前对象MgetCurrentObject();// 设置当前对象FunctionParserT,M,LsetCurrentObject(McurrentObject);}这些核心代码展示了 APIJSON 的核心架构包括 JSON 解析、SQL 配置、请求处理和远程函数调用等功能模块。通过这些组件APIJSON 能够实现无需编写代码即可提供完整 API 接口的功能。更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享