apijson-go 是腾讯 ORM 库 APIJSON 的 Golang 版实现,支持零代码实现增删改查接口并提供文档。
已实现的功能:
-
单表查询、单表数组查询
-
双表一对一关联查询、数组关联查询
-
双表一对多关联查询、数组关联查询
-
@column, @order, @group, page, count
-
单、多表单条新增
-
单、多表单条修改
-
单、多表单条、批量删除
-
Request表的tag校验
- MUST
- REFUSE
-
分页返回total@
-
可用的权限方案
- get只有access中定义的才能访问
- 非get操作则必须与request指定一致才可请求
- 基于角色控制
-
远程函数
-
查询节点 自定义查询数据
-
字段限制
计划后续实现:
-
错误提示完善
-
请求结构复杂度限制
开发指南
- go >= 1.18
- 创建 mysql 数据库
- 导入 demo/todo/doc/todo.sql文件
- demo/todo/config.yaml.example 改成 demo/todo/config.yaml, 然后修改配置文件 config.yaml 中数据库连接
- 在demo/todo 目录运行 go run main.go 或者 查看测试 demo/todo/tests
APIJSON 简介
腾讯 APIJSON 是一种专为 API 而生的 JSON 网络传输协议 以及 基于这套协议实现的 ORM 库。
为各种增删改查提供了完全自动化的万能 API,零代码实时满足千变万化的各种新增和变更需求。
能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。适合中小型前后端分离的项目。
国内 腾讯、华为、阿里巴巴、美团、字节跳动、百度、京东、网易、快手、圆通 等 和
国外 Google, Microsoft, Amazon, Paypal, IBM, Shopee 等数百名知名大厂员工点了 Star,
也有 腾讯、华为、字节跳动、Microsoft、Zoom、知乎 等 工程师/专家/架构师 提了 PR/Issue,
还被 腾讯、华为、百度、SHEIN、快手、中兴、传音、圆通、美图 等各大知名厂商用于各类项目。
APIJSON 九阴真经 - 软件开发行业的 ATM 机
接口全万能,前端不求人。要啥就有啥,所求即所得。
需求由它变,后端稳如山。不变应万变,上午就上线。
通过万能的 API,前端可以定制任何数据、任何结构。
大部分 HTTP 请求后端再也不用写接口了,更不用写文档了。
前端再也不用和后端沟通接口或文档问题了。再也不会被文档各种错误坑了。
后端再也不用为了兼容旧接口写新版接口和文档了。再也不会被前端随时随地没完没了地烦了。
为什么选择 APIJSON?
- 解决十大痛点(APIJSON 可大幅提振开发效率、强力杜绝联调扯皮、巧妙规避文档缺陷、非常节省流量带宽等)
- 开发提速很大(CRUD 零代码热更新全自动,APIJSONBoot 对比 SSM、SSH 等保守估计可提速 20 倍以上)
- 腾讯官方开源 (使用 GitHub、Gitee、工蜂 等平台的官方账号开源,微信公众号、腾讯云+社区 等官方公告)
- 社区影响力大 (GitHub 14K+ 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 的 Demo)
- 工程轻量小巧(仅依赖 fastjson,Jar 仅 280KB,Java 文件仅 59 个共 13719 行代码,例如 APIJSONORM 4.3.1)
- 多年持续迭代(2016 年至今连续维护 6 年,累计 3000+ 次提交、90+ 次发版、50+ 个贡献者,不断更新迭代中...)
用户反馈
腾讯 IEG 数据产品开发组负责人 xinlin: “腾讯的 APIJSON 开源方案,它可以做到零代码生成接口和文档,并且整个生成过程是自动化。当企业有元数据的时候,马上就可以获得接口”
腾讯科技 后台开发高级工程师 雷大锤: “可以抽出时间来看apijson了,这个可以为T10做准备,也是业界很火的东西,可以提升个人影响力!”
腾讯 bodian520: “在调试GET、POST、PUT接口时遇到了一些问题,把个人的摸索经验分享一下,希望作者能梳理下文档,方便我们更好的接入”
华为 minshiwu: “demo工程,默认使用apijson-framework,可以做到无任何配置即可体验apijson的各种能力。”
字节跳动 qiujunlin: “初次见到这个项目,觉得太惊艳了,眼前一亮。给我的感受是,项目大大简化了开发流程,开发效率提升了很多倍。”
百度智慧城市 lpeng: “很兴奋的发现APIJSON很适合我们的一个开发场景,作为我们协议定义的一部分”
中兴 duyijiang: “感谢腾讯大大提供的框架,很好用”
项目主页
https://github.com/glennliao/apijson-go
码云主页
https://gitee.com/glennliao/apijson-go
我要赞赏
如果你喜欢 apijson-go,可以点右上角 ⭐Star 支持一下,谢谢 ^_^
暂无更多评论