今天给大家推荐一个腾讯开源的ORM库:APIJson。
项目简介
APIJSON 是一种专为 API 而生的 JSON 网络传输协议 以及 基于这套协议实现的 ORM 库。
自动实现各自增删改查提供万能的通用接口,零代码实现各自需求。可以大大减少工作量,减少前后端的沟通工作,简化项目开发流程,提升开发效率。
这款系统特别适合初创项目、公司内部项目、小程序、企业网站等一些业务项目的简单的系统。
技术架构
1、开源语言:Java。
2、支持数据库:SqlServer,MySQL、Oracle等主流数据库。
项目结构
**功能特点
**
对于后端
- 提供万能通用接口,大部分 HTTP API 不用再写
- 零代码增删改查、各种跨库连表、JOIN 嵌套子查询等
- 自动生成文档,不用再编写和维护,且自动静态检查
- 自动校验权限、自动管理版本、自动防 SQL 注入
- 开放 HTTP API 无需划分版本,始终保持兼容
对于前端
- 不用再向后端催接口、求文档
- 数据和结构完全定制,要啥有啥
- 看请求知结果,所求即所得
- 可一次获取任何数据、任何结构
- 能去除多余数据,节省流量提高速度
示例
简单查询
接口:http://apijson.cn:8080/get
请求Json
{
"Moment": {
"id": 12
}
}
结果
{
"Moment": {
"content": "1111534034",
"date": "2017-02-08 16:06:11.0",
"id": 12,
"pictureList": [
"http://static.oschina.net/uploads/img/201604/22172508_eGDi.jpg",
"http://static.oschina.net/uploads/img/201604/22172507_rrZ5.jpg"
],
"praiseUserIdList": [70793, 93793, 82001],
"userId": 70793
},
"code": 200,
"msg": "success"
}
多表关联查询
请求Json
{
"[]": {
"Moment": {
"@column": "id,date,userId",
"id": 12
},
"User": {
"id@": "/Moment/userId",
"@column": "id,name"
}
}
}
结果
{
"[]": [
{
"Moment": {
"date": "2017-02-08 16:06:11.0",
"id": 12,
"userId": 70793
},
"User": {
"id": 70793,
"name": "Strong"
}
}
],
"code": 200,
"msg": "success"
}
字段过滤
请求Json
{
"Moment": {
"id": 12,
"@column": "content"
}
}
结果
{
"Moment": {
"content": "1111534034"
},
"code": 200,
"msg": "success"
}
分页
请求Json
{
"[]": {
"Moment": {
"@column": "id,date,content,praiseUserIdList"
},
"page": 0,
"count": 5
}
}
结果
{ "total": 12, "code": 200, "msg": "success" }
新增记录
接口
http://apijson.cn:8080/post
请求Json
{
"Moment": {
"content": "今天天气不错,到处都是提拉米苏雪",
"userId": 38710
},
"tag": "Moment"
}
结果
{
"Moment": {
"code": 200,
"count": 1,
"id": 1544520921923,
"msg": "success"
},
"code": 200,
"msg": "success"
}
修改记录
接口
http://apijson.cn:8080/put
请求Json
{
"Moment": {
"id": 1544520921923,
"content": "海洋动物数量减少,如果非吃不可,不点杀也是在保护它们"
},
"tag": "Moment"
}
结果
{
"Moment": {
"code": 200,
"count": 1,
"id": 1544520921923,
"msg": "success"
},
"code": 200,
"msg": "success"
}
删除记录
接口
http://apijson.cn:8080/delete
请求Json
{
"Moment": {
"id": 1544520921923
},
"tag": "Moment"
}
结果
{
"code": 200,
"msg": "success"
}
项目地址: https://github.com/Tencent/APIJSO