Skip to content

Latest commit

 

History

History
737 lines (546 loc) · 53.2 KB

README.md

File metadata and controls

737 lines (546 loc) · 53.2 KB

Tencent is pleased to support the open source community by making APIJSON available.
Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
This source code is licensed under the Apache License Version 2.0

APIJSON

🏆 零代码、全功能、强安全 ORM 库 🚀
后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构

English  通用文档 视频教程 在线体验

   

     

   

   


导航目录: 项目简介 上手使用 社区生态      完整详细的导航目录 点这里查看

APIJSON 是一种专为 API 而生的 JSON 网络传输协议 以及 基于这套协议实现的 ORM 库。
为各种增删改查提供了完全自动化的万能通用接口,零代码实时满足千变万化的各种新增和变更需求。
能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。
适合中小型前后端分离的项目,尤其是 初创项目、内部项目、低代码/零代码、小程序、BaaS、Serverless 等。

通过万能通用接口,前端可以定制任何数据、任何结构。
大部分 HTTP 请求后端再也不用写接口了,更不用写文档了。
前端再也不用和后端沟通接口或文档问题了。再也不会被文档各种错误坑了。
后端再也不用为了兼容旧接口写新版接口和文档了。再也不会被前端随时随地没完没了地烦了。

特点功能

对于后端

  • 提供万能通用接口,大部分 HTTP API 不用再写
  • 零代码增删改查、各种跨库连表、JOIN 嵌套子查询等
  • 自动生成文档,不用再编写和维护,且自动静态检查
  • 自动校验权限、自动管理版本、自动防 SQL 注入
  • 开放 HTTP API 无需划分版本,始终保持兼容

对于前端

  • 不用再向后端催接口、求文档
  • 数据和结构完全定制,要啥有啥
  • 看请求知结果,所求即所得
  • 可一次获取任何数据、任何结构
  • 能去除多余数据,节省流量提高速度

APIJSON 接口展示

Postman 展示 APIJSON


APIAuto 展示 APIJSON

使用 APIAuto-机器学习接口工具 来管理和测试 HTTP API 可大幅 减少传参错误、提升联调效率
(注意网页工具界面是 APIAuto,里面的 URL+JSON 才是 APIJSON 的 HTTP API):

APIJSON 多表关联查询、结构自由组合,APIAuto 多个测试账号、一键共享测试用例


APIAuto 自动生成前端(客户端)请求代码 和 Python 测试用例代码,一键下载


APIAuto 自动保存请求记录、自动生成接口文档,可添加常用请求、快捷查看一键恢复


APIAuto 一键自动接口回归测试,不需要写任何代码(注解、注释等全都不要)


一图胜千言 - APIJSON 部分基础功能概览



APIJSON App 演示

使用 APIJSON + ZBLibrary 开发的 Android 客户端 Demo (以下 Gif 图看起来比较卡,实际上运行很流畅):


APIJSON 分享演讲

APIJSON-零代码接口与文档 ORM 库(国际开源谷 Gitee Meetup)

https://www.bilibili.com/video/BV1Tv411t74v

image

APIJSON 和 APIAuto-零代码开发和测试(QECon 全球软件质量&效能大会)

https://www.bilibili.com/video/BV1yv411p7Y4

wecom-temp-377bbd0daf5aed716baf7ebcb003d94c


为什么选择 APIJSON?

前后端 关于接口的 开发、文档、联调 等 10 大痛点解析
https://github.com/Tencent/APIJSON/wiki

  • 解决十大痛点 (可帮前后端开发大幅提振开发效率、强力杜绝联调扯皮、巧妙规避文档缺陷、非常节省流量带宽)
  • 开发提速很大 (CRUD 零代码热更新全自动,APIJSONBoot 对比 SSM、SSH 等保守估计可提速 20 倍以上)
  • 腾讯官方开源 (使用 GitHub、Gitee、工蜂 等平台的官方账号开源,微信公众号、腾讯云+社区 等官方公告)
  • 社区影响力大 (GitHub 14.6K Star 在 400W Java 项目排名前 100,远超 FLAG, BAT 等国内外绝大部分开源项目)
  • 各项荣誉成就 (腾讯内外 5 个奖项、腾讯开源前八、腾讯后端 Star 第一、GitHub Java 日周月榜大满贯 等)
  • 多样用户案例 (腾讯内有互娱、音乐、微信、云与智慧,外部有华为、华能、百度、快手、中兴、圆通、传音等)
  • 适用场景广泛 (社交聊天、阅读资讯、影音娱乐、办公学习 等各种 App、网站、小程序、公众号 等非金融类项目)
  • 周边生态丰富 (Android, iOS, Web 等各种 Demo、继承 JSON 的海量生态、零代码 接口测试 和 单元测试 工具等)
  • 文档视频齐全 (项目介绍、快速上手、安装部署 等后端、前端、客户端的 图文解说、视频教程、代码注释 等)
  • 功能丰富强大 (增删改查、分页排序、分组聚合、各种条件、各种 JOIN、各种子查询、跨库连表 等零代码实现)
  • 使用安全简单 (自动增删改查、自动生成文档、自动管理版本、自动控制权限、自动校验参数、自动防 SQL 注入)
  • 灵活定制业务 (在后端编写 远程函数,可以拿到 session、version、当前 JSON 对象 等,然后自定义处理)
  • 高质可靠代码 (代码严谨规范,商业分析软件源伞 Pinpoint 代码扫描报告平均每行代码 Bug 率低至 0.15%)
  • 兼容各种项目 (协议不限 HTTP,与其它库无冲突,对各类 Web 框架集成友好且提供 SpringBoot, JFinal 的示例)
  • 工程轻量小巧 (仅依赖 fastjson,Jar 仅 280KB,Java 文件仅 59 个共 13719 行代码,例如 APIJSONORM 4.3.1)
  • 多年持续迭代 (自 2016 年起已连续维护 6 年,50+ 个贡献者、90+ 次发版、3000+ 次提交,不断更新迭代中...)

image

用户反馈

腾讯 IEG 数据产品开发组负责人 xinlin: “腾讯的 APIJSON 开源方案,它可以做到零代码生成接口和文档,并且整个生成过程是自动化。当企业有元数据的时候,马上就可以获得接口”

腾讯科技 后台开发高级工程师 雷大锤: “可以抽出时间来看apijson了,这个可以为T10做准备,也是业界很火的东西,可以提升个人影响力!”

腾讯 bodian520: “在调试GET、POST、PUT接口时遇到了一些问题,把个人的摸索经验分享一下,希望作者能梳理下文档,方便我们更好的接入”

华为 minshiwu: “demo工程,默认使用apijson-framework,可以做到无任何配置即可体验apijson的各种能力。”

字节跳动 qiujunlin: “初次见到这个项目,觉得太惊艳了,眼前一亮。给我的感受是,项目大大简化了开发流程,开发效率提升了很多倍。”

百度智慧城市研发 lpeng: “很兴奋的发现APIJSON很适合我们的一个开发场景,作为我们协议定义的一部分”

中兴 duyijiang: “感谢腾讯大大提供的框架,很好用”

Tencent#132 (comment)


常见问题

1.如何定制业务逻辑?

在后端编写 远程函数,可以拿到 session、version、当前 JSON 对象、参数名称 等,然后对查到的数据自定义处理
Tencent#101

2.如何控制权限?

在 Access 表配置校验规则,默认不允许访问,需要对 每张表、每种角色、每种操作 做相应的配置,粒度细分到行级
Tencent#12

3.如何校验参数?

在 Request 表配置校验规则 structure,提供 MUST、TYPE、VERIFY 等通用方法,可通过 远程函数 来完全自定义
https://github.com/Tencent/APIJSON/wiki#%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86

更多常见问题及提问前必看
Tencent#36

注意事项

请求参数 JSON 中表名、字段名、关键词及对应的值都是大小写敏感、逗号敏感、分号敏感、空格敏感、换行敏感,
大部分情况都不允许空格和换行,表名以大写字母开头,不要想当然,请严格按照 设计规范 来调用 API !
#181



导航目录: 项目简介 上手使用 社区生态      完整详细的导航目录 点这里查看

快速上手

1.后端上手

可以跳过这个步骤,直接用APIJSON服务器IP地址 apijson.cn:8080 来测试接口。
见  APIJSON后端上手 - Java

2.前端上手

可以跳过这个步骤,直接使用 APIAuto-机器学习HTTP接口工具 或 下载客户端App。
见  Android  或  iOS  或  JavaScript

下载客户端 App

仿微信朋友圈动态实战项目
APIJSONApp.apk

测试及自动生成代码工具
APIJSONTest.apk

开源许可

使用 Apache License 2.0,对 公司、团队、个人 等 商用、非商用 都自由免费且非常友好,请放心使用和登记

使用登记

如果您在使用 APIJSON,请让我们知道,您的使用对我们非常重要(新的按登记顺序排列、专群优先答疑解惑):
Tencent#187




贡献者们

主项目 APIJSON 的贡献者们(6 个腾讯工程师、1 个微软工程师、1 个阿里云工程师、1 个字节跳动工程师、1 个网易工程师、1 个 Zoom 工程师、1 个圆通工程师、1 个知乎基础研发架构师、1 个智联招聘工程师、1 个美国加州大学学生、3 个 SUSTech 学生等):
https://github.com/Tencent/APIJSON/blob/master/CONTRIBUTING.md


生态周边项目的作者们(2 个腾讯工程师、1 个 BAT 技术专家、1 个微软工程师、2 个字节跳动工程师、1 个神州数码工程师&Apache dubbo2js 作者 等):
https://github.com/search?o=desc&q=apijson&s=stars&type=Repositories
https://search.gitee.com/?skin=rec&type=repository&q=apijson&sort=stars_count


还有为 APIJSON 扫描代码贡献 Issue 的 奇安信代码卫士源伞科技


感谢大家的贡献。

统计分析

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

规划及路线图

新增功能、强化安全、提高性能、增强稳定、完善文档、丰富周边、推广使用
https://github.com/Tencent/APIJSON/blob/master/Roadmap.md

理论上所有支持 SQL 与 JDBC/ODBC 的软件,都可以用本项目对接 CRUD,待测试:
Elasticsearch, OceanBase, Spark(可用 Hive 对接), Phoenix(延伸支持 HBase)

我要赞赏

创作不易,坚持更难,右上角点 ⭐Star 来支持/收藏下吧,谢谢 ^_^
https://github.com/Tencent/APIJSON




导航目录: 项目简介 上手使用 社区生态      完整详细的导航目录 点这里查看

技术交流

如果有什么问题或建议可以 填问卷提 Issue,交流技术,分享经验。
如果你解决了某些 bug,或者新增了一些功能,欢迎 贡献代码,感激不尽~
https://github.com/Tencent/APIJSON/blob/master/CONTRIBUTING.md

开发者也是人,也需要工作、休息、恋爱、陪伴家人、走亲会友等,也有心情不好和身体病痛,
往往没有额外的时间精力顾及一些小问题,请理解和支持,开源要大家参与贡献才会更美好~
少数个人的热情终有被耗尽的一天,只有大家共同建设和繁荣社区,才能让开源可持续发展!

开发者时间精力有限,原则上优先解决 登记用户 和 贡献者 的问题,
不解决 文档/视频/常见问题 已明确说明、描述简陋 或 态度无礼 的问题!
如果你已经多次得到帮助,却仍然只索取不贡献,那就别指望大家再帮你!
私聊作者请教技术问题 或者 频繁在互助群 @ 作者 可能会被拉黑/禁言/踢群,请尊重和理解,谢谢!

如果你 提 PR 登记了自己使用 APIJSON 的公司,可以加 企业用户支持专群,作者亲自且优先答疑,
作者只有解答完了这个专群里的全部问题,才看情况解答 Issue/问卷 里的问题(对 Issue/问卷 不保证解答、更不保证及时);
之前的几个互助群,由于大多数问题 在文档/Issue 已有答案却反复提 或者 缺少必要信息要来来回回沟通问清细节 已浪费太多时间,
甚至有白嫖还把自己当大爷的自私自利伸手党输出情绪,我们不再支持,建议未登记企业的用户 填问卷提 Issue

如果你为 APIJSON 做出了以下任何一个贡献,我们将优先为你答疑解惑:
提交了 PR 且被合并提交了优质 Issue发表了优质文章开发了可用的生态项目
Issue/问卷 一般解答顺序:贡献者 > 帮助他人的用户 > 提供任职企业的用户 > 其他用户。

相关推荐

APIJSON, 让接口和文档见鬼去吧!

腾讯业务百万数据 6s 响应,APIJSON 性能优化背后的故事

仿QQ空间和微信朋友圈,高解耦高复用高灵活

后端开挂:3行代码写出8个接口!

后端自动化版本管理,再也不用改URL了!

3步创建APIJSON后端新表及配置

APIJSON对接分布式HTAP数据库TiDB

APIJSON教程(一):上手apijson项目,学习apijson语法,并实现持久层配置

apijson简单demo

apijson简单使用

APIJSON简单部署和使用

学习自动化接口APIJSON

APIJSON 接口调试实践

关于APIJSON远程函数

APIJSON新增方法实例

APIJSON-APIJSON的那些事儿

APIJSON-零代码接口和文档 JSON 协议 与 ORM 库

APIJSON使用例子总结

APIJSON 自动化接口和文档的快速开发神器 (一)

APIJSON在mac电脑环境下配置去连接SQL Server

APIJSON复杂业务深入实践(类似12306订票系统)

全国行政区划数据抓取与处理

新手搭建 APIJSON 项目指北

使用APIJSON写低代码Crud接口

apijson在同一个接口调用中 使用远程函数写入更新时间和创建时间

APIJSON(一:综述)

APIJSON 代码分析(三:demo主体代码)

APIJSON 代码分析(二)AbstractParser类(解析器)

APIJSON 代码分析(四:AbstractObjectParser源码阅读)

APIJSON 代码分析 AbstractSQLConfig 第二篇

APIJSON 代码分析(六)APIJSON—Verifier检查类

APIJSON 代码分析(四)AbstractSQLExecutor—SQL执行器

APIJSON使用

apijson 初探

生态项目

APIJSON-Demo APIJSON 各种语言、各种框架 的 使用示例项目、上手文档、测试数据 SQL 文件 等

apijson-orm APIJSON ORM 库,可通过 Maven, Gradle 等远程依赖

apijson-framework APIJSON 服务端框架,通过数据库表配置角色权限、参数校验等,简化使用

apijson-router APIJSON 的路由插件,可控地对公网暴露类 RESTful 简单接口,内部转成 APIJSON 格式请求来执行

apijson-column APIJSON 的字段插件,支持 字段名映射 和 !key 反选字段

APIAuto 敏捷开发最强大易用的接口工具,机器学习零代码测试、生成代码与静态检查、生成文档与光标悬浮注释

UnitAuto 机器学习零代码单元测试平台,零代码、全方位、自动化 测试 方法/函数 的正确性、可用性和性能

SQLAuto 智能零代码自动化测试 SQL 语句执行结果的数据库工具,一键批量生成参数组合、快速构造大量测试数据

apijson-doc APIJSON 官方文档,提供排版清晰、搜索方便的文档内容展示,包括设计规范、图文教程等

APIJSONdocs APIJSON 英文文档,提供排版清晰的文档内容展示,包括详细介绍、设计规范、使用方式等

apijson.org APIJSON 官方网站,提供 APIJSON 的 功能简介、登记用户、作者与贡献者、相关链接 等

APIJSON.NET C# 版 APIJSON ,支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite

apijson-go Go 版 APIJSON , 基于Go(>=1.18) + GoFrame2, 支持查询、单表增删改、权限管理等

apijson-go Go 版 APIJSON ,支持单表查询、数组查询、多表一对一关联查询、多表一对多关联查询 等

apijson-hyperf PHP 版 APIJSON,基于 Hyperf 支持 MySQL

APIJSON-php PHP 版 APIJSON,基于 ThinkPHP,支持 MySQL, PostgreSQL, SQL Server, Oracle 等

apijson-php PHP 版 APIJSON,基于 ThinkPHP,支持 MySQL, PostgreSQL, SQL Server, Oracle 等

apijson-node 字节跳动工程师开源的 Node.ts 版 APIJSON,提供 nestjs 和 typeorm 的 Demo 及后台管理

uliweb-apijson Python 版 APIJSON,支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite 等

APIJSONParser 第三方 APIJSON 解析器,将 JSON 动态解析成 SQL

FfApiJson 用 JSON 格式直接生成 SQL,借鉴 APIJSON 支持多数据源

APIJSON-ToDo-Demo 一个简单的 todo 示例项目,精简数据,简化上手流程,带自定义鉴权逻辑

apijson-learn APIJSON 学习笔记和源码解析

apijson-practice BAT 技术专家开源的 APIJSON 参数校验注解 Library 及相关 Demo

apijson-db2 APIJSON 接入 IBM 数据库 DB2 的 Demo

APIJSONDemo 字节跳动工程师接入 ClickHouse 的 APIJSON 使用 Demo

APIJSONDemo_ClickHouse APIJSON + SpringBoot 连接 ClickHouse 使用的 Demo

APIJSONBoot_Hive APIJSON + SpringBoot 连接 Hive 使用的 Demo

apijson-sample APIJSON 简单使用 Demo 及教程

apijson-examples APIJSON 的前端、业务后端、管理后端 Demo

light4j 整合 APIJSON 和微服务框架 light-4j 的 Demo,同时接入了 Redis

SpringServer1.2-APIJSON 智慧党建服务器端,提供 上传 和 下载 文件的接口

apijson_template apijson java 模版,使用 gradle 管理依赖和构建应用

api-json-demo 基于 APIJSON,实现低代码写 CURD 代码,代替传统 ORM 框架,适配 Oracle 事务

ApiJsonByJFinal 整合 APIJSON 和 JFinal 的 Demo

apijson-go-demo apijson-go demos,提供 3 个从简单到复杂的不同场景 Demo

apijson-builder 一个方便为 APIJSON 构建 RESTful 请求的 JavaScript 库

apijson-go-ui apijson-go UI 界面配置, 支持权限管理、请求规则配置等

AbsGrade 列表级联算法,支持微信朋友圈单层评论、QQ空间双层评论、百度网盘多层(无限层)文件夹等

APIJSON-Android-RxJava 仿微信朋友圈动态实战项目,ZBLibrary(UI) + APIJSON(HTTP) + RxJava(Data)

Android-ZBLibrary Android MVP 快速开发框架,Demo 全面,注释详细,使用简单,代码严谨

apijson-dynamic-datasource 基于APIJSON,动态切换数据源、同一数据源批量操作事务一致性DEMO

感谢热心的作者们的贡献,点 ⭐Star 支持下他们吧~

腾讯犀牛鸟开源人才培养计划

Tencent#229

qiujunlin 2.接入 presto/hive/clickhouse/db2 任意一个

APIJSON 接入 clickhouse 使用demo
https://github.com/qiujunlin/APIJSONDemo

zhangshukun 2.接入 presto/hive/clickhouse/db2 任意一个

APIJSON-Demo接入db2
https://github.com/andream7/apijson-db2

hanxu 1.完善入门介绍视频

重构 APIJSON 文档
https://hanxu2018.github.io/APIJSON-DOC/
文档源码
https://github.com/HANXU2018/APIJSON-DOC
配套评论区 apijson-doc-Comment
https://github.com/HANXU2018/apijson-doc-Comment

chenyanlan 2.接入 presto/hive/clickhouse/db2 任意一个

APIJSON + SpringBoot连接ClickHouse使用的Demo
https://github.com/chenyanlann/APIJSONDemo_ClickHouse

zhaoqiming 1.完善入门介绍视频

APIJSON 后端教程(1):简介 https://www.bilibili.com/video/BV1vL411W7yd

APIJSON 后端教程(2):数据库 https://www.bilibili.com/video/BV1eB4y1N77s

APIJSON 后端教程(3):Demo https://www.bilibili.com/video/BV1FX4y1c7ug

APIJSON 后端教程(4):Boot https://www.bilibili.com/video/BV18h411z7FK

APIJSON 后端教程(5):Final https://www.bilibili.com/video/BV1GM4y1N7XJ

APIJSON 后端教程(6):uliweb_apijson https://www.bilibili.com/video/BV1yb4y1S79v/

APIJSON 后端教程(7):问题答疑 https://www.bilibili.com/video/BV1dQ4y1h7Df

APIJSON配套文档: https://github.com/kenlig/apijsondocs

huwen 2.接入 presto/hive/clickhouse/db2 任意一个

APIJSON-Demo 接入presto https://github.com/hclown9804/APIJSONDemo_presto

zhanghaoling 1.完善入门介绍视频

APIJSON结合已有项目,简化开发流程 https://github.com/haolingzhang1/APIJson--demo

说明文档 https://github.com/haolingzhang1/APIJson--demo/tree/main/APIJson集成项目说明

(1)官方demo https://github.com/haolingzhang1/APIJson--demo/blob/main/APIJson集成项目说明/APIJson集成现有项目(1)-%20官方demo.pdf

(2)单表配置 https://github.com/haolingzhang1/APIJson--demo/blob/main/APIJson集成项目说明/APIJson集成现有项目(2)-%20单表配置.pdf

zhoukaile 1.完善入门介绍视频

视频链接:https://www.bilibili.com/video/BV1Uh411z7kZ/

文档链接:https://gitee.com/funkiz/apijson_camp

lintao 1.完善入门介绍视频

APIJSON 上手教程:https://www.bilibili.com/video/BV1Pq4y1n7rJ

持续更新

https://github.com/Tencent/APIJSON/commits/master

工蜂主页

https://git.code.tencent.com/Tencent_Open_Source/APIJSON

码云主页

https://gitee.com/Tencent/APIJSON