APIJSON/README.md
2022-03-13 15:52:29 +08:00

40 KiB
Raw Blame History

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 库。
为各种增删改查提供了完全自动化的万能 API零代码实时满足千变万化的各种新增和变更需求。
能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。
适合中小型前后端分离的项目,尤其是 初创项目、内部项目、低代码/零代码、小程序、BaaS、Serverless 等。

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

特点功能

对于前端

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

对于后端

  • 提供通用接口,大部分 API 不用再写
  • 自动生成文档,不用再编写和维护
  • 自动校验权限、自动管理版本、自动防 SQL 注入
  • 开放 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 1W+ Star 在 350W Java 项目中排名前 120远超 FLAG, BAT 等国内外绝大部分开源项目)
  • 多样用户案例 (腾讯内部用户包含 互娱、音乐、云与智慧,外部用户包含 500 强上市公司、数千亿资本国企 等)
  • 适用场景广泛 (社交聊天、阅读资讯、影音视频、办公学习 等各种 App、网站、公众号、小程序 等非金融类项目)
  • 周边生态丰富 (Android, iOS, Web 等各种 Demo、继承 JSON 的海量生态、零代码 接口测试 和 单元测试 工具等)
  • 文档视频齐全 (项目介绍、快速上手、安装部署 等后端、前端、客户端的 图文解说、视频教程、代码注释 等)
  • 功能丰富强大 (增删改查、分页排序、分组聚合、各种条件、各种 JOIN、各种子查询、跨库连表 等零代码实现)
  • 使用安全简单 (自动增删改查、自动生成文档、自动管理版本、自动控制权限、自动校验参数、自动防 SQL 注入等)
  • 灵活定制业务 (在后端编写 远程函数,可以拿到 session、version、当前 JSON 对象 等,然后自定义处理)
  • 高质可靠代码 (代码严谨规范,商业分析软件源伞 Pinpoint 代码扫描报告平均每行代码 Bug 率低至 0.15%)
  • 兼容各种项目 (协议不限 HTTP与其它库无冲突对各类 Web 框架集成友好且提供 SpringBoot, JFinal 的示例)
  • 工程轻量小巧 (仅依赖 fastjsonJar 仅 280KBJava 文件仅 59 个共 13719 行代码,例如 APIJSONORM 4.3.1)
  • 多年持续迭代 (自 2016 年开源至今已连续维护 5 年多,累计 2000+ Commits、80+ Releases不断更新迭代中...)

常见问题

1.如何定制业务逻辑?

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

2.如何控制权限?

在 Access 表配置校验规则,默认不允许访问,需要对 每张表、每种角色、每种操作 做相应的配置,粒度细分到行级
https://github.com/Tencent/APIJSON/issues/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

更多常见问题及提问前必看
https://github.com/Tencent/APIJSON/issues/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请让我们知道您的使用对我们非常重要(按登记顺序排列)
https://github.com/Tencent/APIJSON/issues/187



贡献者们

主项目 APIJSON 的贡献者们(6 个腾讯工程师、1 个知乎基础研发架构师、1 个圆通工程师 等)
https://github.com/Tencent/APIJSON/blob/master/CONTRIBUTING.md


生态周边项目的作者们(2 个腾讯工程师、1 个 BAT 技术专家、1 个字节跳动工程师 等)
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 的 奇安信代码卫士源伞科技


感谢大家的贡献。

规划及路线图

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

理论上所有支持 SQL 与 JDBC/ODBC 的软件,都可以用本项目对接 CRUD待测试:
Elasticsearch, OceanBase, Presto, Spark, Hive(延伸支持 Hadoop, Spark), Phoenix(延伸支持 HBase), Presto/Trino(延伸支持 Redis, Hive, Kafka, Elasticsearch, Thrift, Cassandra, MySQL, PostgreSQL, Oracle, MongoDB...)

我要赞赏

如果你喜欢 APIJSON感觉 APIJSON 帮助到了你,可以点右上角 Star 支持一下,谢谢 ^_^



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

技术交流

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

QQ 技术群 734652054、607020115

如果你为 APIJSON 做出了以下任何一个贡献:
提交了 PR 且被合并提交了优质 Issue发表了优质文章开发了可用的生态项目登记了你的公司,可以加
贡献者微信群,注意联系 LonelyExplorer加好友描述中附上贡献链接谢谢

相关推荐

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

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

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

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

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

APIJSON对接分布式HTAP数据库TiDB

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

apijson简单demo

apijson简单使用

APIJSON简单部署和使用

学习自动化接口APIJSON

APIJSON 接口调试实践

APIJSON使用例子总结

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

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

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

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

新手搭建 APIJSON 项目指北

使用APIJSON写低代码Crud接口

APIJSON综述

APIJSON 代码分析demo主体代码

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

APIJSON 代码分析AbstractObjectParser源码阅读

APIJSON 代码分析 AbstractSQLConfig 第二篇

APIJSON 代码分析APIJSON—Verifier检查类

APIJSON 代码分析AbstractSQLExecutor—SQL执行器

生态项目

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

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

apijson-framework APIJSON 服务端框架,可通过 Maven, Gradle 等远程依赖

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

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

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

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

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

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

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

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 APIJSON 接入 ClickHouse 的 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-builder 一个方便为 APIJSON 构建 RESTful 请求的 JavaScript 库

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

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

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

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

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

https://github.com/Tencent/APIJSON/issues/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 后端教程3Demo https://www.bilibili.com/video/BV1FX4y1c7ug

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

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

APIJSON 后端教程6uliweb_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