首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

自动化 ORM 库 APIJSON 3.4.9 发布,已 5K Star 入选码云最具价值项目

  •  2
     
  •   TommyLemon · 243 天前 · 5151 次点击
    这是一个创建于 243 天前的主题,其中的信息可能已经有所发展或是发生改变。

    APIJSON 3.4.0-3.4.9 更新内容:

    • 新增JFinal 版 Demo叫 APIJSONFinal,SpringBoot 版 Demo改名为 APIJSONBoot ;

    • 全面兼容 PostgreSQL ;修复自动化 JOIN 和子查询的问题等。

    • 新增 >,<,>=,<= 比较运算;新增支持自定义主键名等功能。

    APIJSON 简介

    APIJSON 是一种为 API 而生的 JSON 网络传输协议。
    简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的 API。
    能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。
    适合中小型前后端分离的项目,尤其是互联网创业项目企业自用项目

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


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


    自动生成封装请求 JSON 的 Android 与 iOS 代码、一键下载自动生成的 JavaBean


    自动保存请求记录、自动生成接口文档


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

    对于前端

    • 不用再向后端催接口、求文档

    • 数据和结构完全定制,要啥有啥

    • 看请求知结果,所求即所得

    • 可一次获取任何数据、任何结构

    • 能去除重复数据,节省流量提高速度

    对于后端

    • 提供通用接口,大部分 API 不用再写

    • 自动生成文档,不用再编写和维护

    • 自动校验权限、自动管理版本、自动防 SQL 注入

    • 开放 API 无需划分版本,始终保持兼容

    • 支持增删改查、模糊搜索、正则匹配、远程函数等

    APIJSON 生态内项目:

    • APIJSONAuto 接口管理工具,自动生成文档与注释、自动生成代码、自动化回归测试、自动静态检查等

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

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

    • apijson PHP 版 APIJSON,支持 MySQL, PostgreSQL, MS SQL Server, Oracle, SQLite 等

    • apijson Node.ts 版 APIJSON,支持 MySQL, PostgreSQL, MS SQL Server, Oracle, SQLite, WebSQL

    • APIJSONParser 参考 APIJSON 设计标准开发的一款 SQL 编译器框架

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

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

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

    给热心的作者们点 Star 支持下吧 ^_^

    项目主页(源码、文档、视频、生态 等)

    创作不易,GitHub 右上角点 ⭐Star 支持下本项目吧,谢谢 ^_^

    38 回复  |  直到 2019-03-15 18:39:31 +08:00
        1
    nuance2ex   243 天前 via iPhone
    顶一下,前 2 天还了解过。下个项目可以试下。
        2
    TommyLemon   243 天前
    @nuance2ex 感谢支持^_^
        3
    Variazioni   243 天前
    感谢分享。。看上去是个大神啊。。
        4
    mull   243 天前 via Android
    牛逼
        5
    zeromake   243 天前
    我只想说文档还是那个上古格式,能不能换个,看得我难受,还有文档明显缺少有条理的使用和各种操作的一个目录,很多操作还得去看示例
        6
    TommyLemon   243 天前
    @Variazioni 哈哈,感谢支持^_^
        7
    TommyLemon   243 天前
    @zeromake 可以看看这个哦,严谨的官方文档 + 群友贡献的图文教程
    https://github.com/TommyLemon/APIJSON/blob/master/Document.md

    各种 Demo 和 视频教程也有的
    http://apijson.org/
        8
    TommyLemon   243 天前
    @mull 感谢,可以试试哦
        9
    Kylinsun   243 天前 via iPhone   ♥ 4
    那个男人回来了。
        10
    blless   243 天前 via Android
    老哥,你又来辣
    说句题外话,能跑跑模糊测试吗
        11
    TommyLemon   243 天前
    @blless APIJSONAuto 提供了自动化测试,不需要写任何代码
    http://i.youku.com/apijson
        12
    woscaizi   243 天前 via iPhone
    不适合旧项目的改造吗?项目原有的 shiro 鉴权,mybtais 可以和它共同使用吗?
        13
    CodeDeer   243 天前
    感觉 APIJSON 应该对标 prisma,而不是 GraphQL
        14
    PhpBestRubbish   243 天前
        15
    anyele   243 天前 via Android
    老哥又来了。。
        16
    bofei   243 天前
    是 前端写 json 直接操作 数据库吗?
        17
    TommyLemon   243 天前
    @woscaizi 可以的,核心是 APIJSONORM, 一个 ORM 库,可任意搭配其他开源库或框架使用哦
        18
    TommyLemon   243 天前
    @CodeDeer
    Prisma 是一个 ORM 库,用于实现 SQL 语句的封装。
    需要后端针对每个需求都写封装 SQL 语句的代码哦.

    而 APIJSON 是完全自动化生成 SQL 语句的,后端不需要写相关代码。
    前端按照 设计规范 来请求,后端会完全自动解析成 SQL 语句去连接数据库执行,并返回和 Request JSON 结构完全对应的 Response JSON
    https://github.com/TommyLemon/APIJSON/issues/29
        19
    TommyLemon   243 天前
    @PhpBestRubbish 感谢支持^_^,可以试试哦
        20
    TommyLemon   242 天前
    @bofei 间接操作,中间是有做 自动化权限控制、自动防 SQL 注入 等各种安全措施的
        21
    dany813   242 天前
    看着不错
        22
    Cat73   242 天前
    居然看到了码云,那就顺手给自己的包打个广告吧: https://gitee.com/cat73/mybatis-pager

    为 SpringBoot(基于 Servlet 的 Web 项目) + Mybatis 提供简单易用的分页查询支持

    一个 @Pager 注解搞定前后端分离项目的分页喵~
        23
    rogwan   242 天前
    后端微服务框架,现在也倾向于直接返回 json 数据,框架 ORM 的 CRUD 几乎有媲美原生的 SQL 能力。
    楼主能介绍下 APIJSON 的定位吗?是取代"ORM+微服务"的组合装吗?以后在 SQL 的能力上,是继续保持轻量级 SQL,还是会全兼容?甚至可以 execute sql 语句?
        24
    xiaogui   242 天前
    GraphQL?
        25
    ChenJunXin   242 天前
    @xiaogui #24 我也想到了这个,是不是定位一样的?
        26
    jorneyr   242 天前
    前端都把事干完了,我们后端啥也不用干了,我是不是要失业了,有点担心
        27
    TommyLemon   242 天前
    @dany813 可以试试哦
        28
    TommyLemon   242 天前
    @rogwan
    核心一直是 权限、数据、结构校验 + 解析 JSON -> 转为 SQL -> 封装 JSON 的 ORM 库,
    名为 APIJSONORM, 目前仅仅依赖 fastjson 这一个 jar,仅仅 47 个 Java 类,
    以后也会继续保持轻量,可任意搭配其他开源库 /框架 /插件 使用。
    至于执行 SQL 对数据库 CRUD,是自己的业务工程内重写 SQLExecutor 的 executeQuery ,executeUpdate 实现的,
    完全可以自定义 驱动、连接池、中间件、缓存 等。

    “后端微服务框架“ 能具体举个例子吗? SpringBoot 这种 HTTP Server 和 APIJSON 这种 ORM 不是一类的,
    APIJSON 主项目也提供了基于 SpringBoot 的 Demo 叫 APIJSONBoot,还有基于 JFinal 的 APIJSONFinal。
        29
    TommyLemon   242 天前
    @xiaogui
    Facebook 出的 GraphQL,你拿出来对比只能说明你没有对 它 和 APIJSON 有足够的了解。
    在 CRUD 上 APIJSON 完爆 GraphQL:

    完爆 Facebook/GraphQL,APIJSON 全方位对比解析(一)-基础功能
    juejin.im/post/5ae80edd51882567277433cf

    完爆 Facebook/GraphQL,APIJSON 全方位对比解析(二)-权限控制
    juejin.im/post/5b13cda1f265da6e4a6bcfee

    完爆 Facebook/GraphQL,APIJSON 全方位对比解析(三)-表关联查询
    juejin.im/entry/5b4ff88f6fb9a04f914a8df5

    目前我已知的所有的开源库,只有 APIJSON 能做到 关系型数据库 自动化 CRUD,
    如果有别的,欢迎告诉我,我会认真了解和对比下。

    以下项目主页包括 源码、部署与协议文档、视频教程、接口工具等。
    创作不易,GitHub 右上角点 ⭐Star 支持下吧,谢谢 ^_^
    github.com/TommyLemon/APIJSON/
        30
    TommyLemon   242 天前
        31
    TommyLemon   242 天前
    @jorneyr 并不会。
    APIJSON 通过自动化 API 实现 [大部分] CRUD 的业务需求,
    但还有部分需要特殊处理数据或结构的地方做不了自动化,
    所以 APIJSON 提供了 [远程函数],后端可以在里面写代码自定义自己的业务逻辑。
    https://github.com/TommyLemon/APIJSON/blob/master/Document.md#3.2

    还有一小部分
    很复杂的查询(一般对应报表之类的需求,各种 JOIN 和子查询 嵌套、字符串拼接 等,SQL 写一屏以上)、
    复杂的事务操作(操作多表,还可能中间 CRUD 出现两种以上,各种校验、多次读写、事务回滚、定制异常等)
    等用 APIJSON 做就很吃力了甚至不能实现,建议还是用手写接口(包括 SQL)的方式来实现。
    还有后端也不止 CRUD,还有各种
    报表统计、数据分析、个性化推荐、服务监控、数据库运维(如果没有 DBA 的话)
    等工作,这些也不是 APIJSON 的适用范围或者说应用场景。
        32
    rogwan   242 天前
    @TommyLemon APIJSON 连简单的业务层逻辑(就是我说的微服务的意思)都干了,看起来这后端只要把数据库设计完就没事了,其他的前端都搞定。
        33
    TommyLemon   242 天前
    @rogwan 对的,但前端额外做的事情基本就是:
    在原来 RESTful 传 JSON 参数的基础上, 构建的 JSON 键值对和层级多一些。
    而且后端把接口上传到 APIJSONAuto(可下载源码部署到内网),前端点开看就知道了,
    流程和以前一样,都不用自己去想怎么构造各种嵌套的查询,各种 JOIN、子查询等,
    JSON 参数传到后端的 APIJSONORM,就会被自动解析成 SQL 并自动连数据库 CRUD,
    然后将结果集封装成和请求 JSON 结构完全对应的 返回结果 JSON,
    期间自动校验 数据、结构、权限,自动防 SQL 注入。

    APIJSON 目前有 Java,C#,Python,PHP,Node 5 种语言的后端库及 Demo,Android, iOS, JavaScript 种前端 Demo,
    还有一个
    第三方 APIJSON 协议解析库,将 JSON 动态编译成 SQL,也已经比较成熟了,各种自动化 JOIN 也都支持。
    https://github.com/Zerounary/APIJSONParser

    还有一个
    自动化接口管理工具,自动生成代码、自动静态检查、自动化回归测试、自动生成文档与注释等。
    https://github.com/TommyLemon/APIJSONAuto

    创作不易,GitHub 右上角点 Star 支持下作者吧 ^_^
        34
    qping   242 天前
    @anyele #15 什么梗。。。
        35
    rogwan   242 天前
    @TommyLemon 支持,已经星标啦!这个前端要是再会点 UML 类图生成数据库 O(∩_∩)O
        36
    TommyLemon   242 天前
    @rogwan 感谢,哈哈,其实用 MySQLWorkbench, Datagrip, Navicat 等各种数据库工具建表也很方便了
        37
    TommyLemon   242 天前
    @woscaizi
    建议使用 APIJSON 时,权限用 APIJSONORM 提供的自动化权限 注解+注册 的方式控制。
    如果一定要用 Shiro 这种基于路由的权限库,可以拼接 APIJSON 的通用 API 与请求 JSON 里的 tag,
    例如 base_url/post 与 tag:User 拼接就是 base_url/post/user,给它传进去一个虚拟路由,动态设置 URL。
        38
    TommyLemon   242 天前
    @blless
    模糊测试用现有的工具即可,APIJSON 的 Demo 提供了 HTTP API,
    甚至也实现可以用 TCP, UDP 来通信的 Demo,暴露出的 API 就能用工具进行模糊测试。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2626 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 13:57 · PVG 21:57 · LAX 05:57 · JFK 08:57
    ♥ Do have faith in what you're doing.