嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法

" 实时零代码、全功能、强安全 ORM 库 后端接口和文档零代码,前端定制返回 JSON 的数据和结构"

项目亮点

核心功能解析

  1. 零代码生成API
    只需配置JSON参数,自动生成RESTful接口,支持GET/POST/PUT/DELETE全操作
// 查询用户信息及关联订单
{
  "User": {
    "id": 1,
    "@column": "id,name",
    "Order[]": {
      "userId@": "User/id",
      "@column": "id,amount,createTime"
    }
  }
}
  1. 实时文档生成
    自动生成Swagger风格接口文档,支持在线测试,开发效率提升300%

  2. 动态权限管理
    通过角色配置实现字段级权限控制,支持RBAC模型

// 权限配置示例
@MethodAccess(
    GET = {UNKNOWN, LOGIN, ADMIN},
    POST = {ADMIN}
)
public class User {}
  1. 多数据库支持
    MySQL | PostgreSQL | SQL Server | Oracle | SQLite | ClickHouse 等

  2. 智能防注入
    自动过滤危险字符,内置SQL预编译机制

技术架构揭秘

模块 核心技术 特性说明
协议层 JSON + HTTP 标准化接口规范
解析引擎 自研SQL生成器 支持复杂嵌套查询
权限控制 RBAC模型 字段级访问控制
数据库适配 JDBC + 多数据源驱动 跨数据库兼容
文档生成 Swagger集成 实时同步接口文档

应用场景大全

场景1:移动应用后端开发

某电商App使用APIJSON后:

  • 接口开发时间从3天缩短至2小时
  • 订单查询接口性能提升5倍
  • 文档维护成本降低90%

场景2:低代码平台构建

通过配置JSON实现:

{
  "Product": {
    "@column": "id,name,price",
    "@order": "sales-desc",
    "@count": 10
  }
}

自动生成热销商品排行榜接口

场景3:微服务架构支持

// 分布式事务配置
@Transaction
public class OrderService {
    @JSONRequest(url = "http://inventory-service/updateStock")
    public void createOrder(){...}
}

场景4:数据中台建设

支持同时连接:

  • MySQL(业务数据)
  • ClickHouse(分析数据)
  • SQL Server(历史数据) 实现跨库联合查询

同类项目对比

项目 开发效率 学习成本 功能特性 安全性
APIJSON 全功能支持 军工级
PostgREST 基础CRUD 中等
Hasura GraphQL支持 较强
GraphQL 灵活查询 需配置

项目实战指南

三步快速入门

  1. 添加Maven依赖
<dependency>
    <groupId>com.tencent</groupId>
    <artifactId>apijson-boot</artifactId>
    <version>5.2.0</version>
</dependency>
  1. 配置数据源
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
  1. 发送请求
curl -X POST http://localhost:8080/get \
-H "Content-Type: application/json" \
-d '{"User":{"@column":"id,name"}}'

高级功能示例

跨表联查

{
  "User": {
    "id": 1,
    "Order[]": {
      "userId@": "User/id",
      "Product": {
        "orderId@": "Order/id"
      }
    }
  }
}

事务处理

@Transaction
@JSONRequest
public class OrderController {
    public String createOrder(Order order) {
        // 自动事务管理
    }
}

项目效果

项目生态

  • APIJSON-Android:移动端快速开发框架
  • APIJSON-Boot:SpringBoot深度整合方案
  • APIJSON-UI:可视化接口配置平台
  • APIJSON-DOC:智能文档生成系统

性能数据(数据仅供参考)

并发数 平均响应时间 吞吐量
100 23ms 4320/s
500 45ms 11025/s
1000 82ms 12100/s

统计分析

腾讯、华为、阿里巴巴、美团、字节跳动、百度、京东、网易、快手等和 Google, Apple, Microsoft, Amazon, Paypal, IBM, Shopee 等 数百名知名大厂员工点了 Star,也有腾讯、华为、字节跳动、Microsoft、Zoom 等不少知名大厂员工提了 PR/Issue,感谢大家的支持~

项目地址

https://github.com/Tencent/APIJSON

17.6K star!后端接口零代码的神器来了,腾讯开源的ORM库太强了!的更多相关文章

  1. 腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一)

    腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1.  Basic Paxos 算法是为 ...

  2. 腾讯开源的Paxos库PhxPaxos代码解读---Prepare阶段(一)

    简单的画了一下PhxPaxos在Prepare阶段的逻辑,主要是正常的逻辑,异常逻辑和超时后面再写了; 熟悉PhxPaxos代码最好的方法是编译运行sample目录下的三个例子,编译方法在另一篇博客已 ...

  3. 记录一次用宝塔部署微信小程序Node.js后端接口代码的详细过程

    一直忙着写毕设,上一次写博客还是元旦,大半年过去了.... 后面会不断分享各种新项目的源码与技术.欢迎关注一起学习哈! 记录一次部署微信小程序Node.js后端接口代码的详细过程,使用宝塔来部署. 我 ...

  4. SpringBoot-如何设计优秀的后端接口?

    1 概述 本篇文章以Spring Boot为基础,从以下三个方向讲述了如何设计一个优秀的后端接口体系: 参数校验:涉及Hibernate Validator的各种注解,快速失败模式,分组,组序列以及自 ...

  5. 基于Node.js的微信JS-SDK后端接口实现

    做了一个网站,放到线上,用微信打开,点击分享,可是分享后发给朋友的链接卡片是微信默认自带的,如下: 这标题,描述以及图片是默认自带的,丑不说,分享给别人还以为是盗号网站呢,而接入微信的JSSDK后,分 ...

  6. 个人永久性免费-Excel催化剂功能第98波-零代码零距离轻松接触并拥有金融大数据

    数据产生价值的一个最突出的领域-金融领域,股票.证券.上市公司财务报表等,多少人在其中发掘出宝贵的数据价值.今天Excel催化剂联合Tushare金融大数据平台,让这一切的数据都能成为你我普通人零代码 ...

  7. 【项目实践】SpringBoot三招组合拳,手把手教你打出优雅的后端接口

    以项目驱动学习,以实践检验真知 前言 一个后端接口大致分为四个部分组成:接口地址(url).接口请求方式(get.post等).请求数据(request).响应数据(response).如何构建这几个 ...

  8. crudapi零代码开发平台应用场景和成功案例

    应用场景 在前面文章中,已经介绍了crudapi主要功能和使用方式,本文主要介绍crudapi应用场景以及具体的使用方式. 概要 crudapi属于产品级的零代码平台,无需编程,通过配置自动生成cru ...

  9. itest 开源测试管理项目中封装的下拉列表小组件:实现下拉列表使用者前后端0行代码

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景       像easy ui 之类的纯前端组件,也有下拉列表组件,但是使用的时候,每个下拉列表,要配一个URL ...

  10. 【Node.js】二、基于Express框架 + 连接MongoDB + 写后端接口

    在上节,我们讲了如何搭建express环境,现在我们说说如何通过node.js写服务接口给前端调用 1. 首先通过MongoDB建好数据库与表格 例如,我的数据库名字为db_demo,数据库表格为go ...

随机推荐

  1. linux mint安装触控板手势fusuma

    安装必要的包,终端输入: sudo apt-get install libinput-tools sudo apt-get install xdotool sudo gem install fusum ...

  2. AtCoder [ABC351E] Jump Distance Sum 题解 [ 绿 ] [ 数学 ]

    原题 场上差点就想出来了,就差一个旋转坐标轴了. 初步分析 首先来看如何判断两个点能不能走到,这可以看成下面的一张网格图,相同颜色的格子相互连通. 因此根据瞪眼法,可以把这些格子分为 $ (x_i + ...

  3. 最新demo版 | 如何0-1开发支付宝小程序之小程序页面功能介绍(三)

    前两期讲了小程序开发的准备工作以及前期需要如何调试,今天我们就来介绍下开发一个支付宝小程序页面需要了解哪些信息. 一个小程序页面的整体功能的构成离不开页面展示(AXML).页面样式(ACSS)以及页面 ...

  4. VS2019 找不到资产文件 “xxxx\obj\project.assets.json”运行NuGet包还原以生成此文件

    参考地址:https://blog.csdn.net/weixin_42835409/article/details/107033059 下载 log4net 源码打开,编译报错: 严重性 代码 说明 ...

  5. 牛客题解 | 单组_spj判断数组之和

    题目 题目链接 解题思路 后台有spj代码,能对同学们的输出数据进行校验,符合条件即可通过. 附赠 spj 代码 #include <iostream> #include <fstr ...

  6. Java - 高射炮打蚊子(第二弹)

    题记部分 01 || 面试题 001 || 什么是JVM JVM(Java虚拟机)是Java程序运行的环境,它是一个抽象的计算机,包括指令集.寄存器集.堆栈.垃圾回收等.JVM屏蔽了与具体操作系统平台 ...

  7. 洛谷P10112 [GESP202312 八级] 奖品分配 题解

    题目传送门. 看了题解才发现我有多蠢. 我的做法真是唐完了. 在此之前请学习扩展欧几里得定理和扩展欧几里得定理求逆元. 发现奖品要么 \(N\) 个,要么 \(N+1\) 个,于是分类讨论,当奖品只有 ...

  8. 近1000 star,Forest 1.5.0 正式版发布

    简介 Forest是一个高层的.极简的轻量级HTTP调用API框架. 相比于直接使用Httpclient您不再用写一大堆重复的代码了,而是像调用本地方法一样去发送HTTP请求. 不需要调用HTTP底层 ...

  9. 自己修改的一款Typora学术主题Academic-zh-vq

    这款typora主题是在Academic-Zh主题的基础上修改而来的. 主题衍生路径: 官方Academic主题-->zh-academic主题-->Academic-Zh主题--> ...

  10. 【MATLAB习题】铰链四杆机构的运动学分析

    铰链四杆机构题目&已知数据 matlab 代码 主程序文件: function main %输入已知数据 clear; i1=101.6; i2=254; i3=177.8; i4=304.8 ...