APIJSON 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
APIJSON 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache
操作系统: 跨平台
收录时间: 2016-12-08
提 交 者: 孤独的探索号

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

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

特点功能

在线解析

  • 自动生成接口文档,清晰可读永远最新
  • 自动校验与格式化,支持高亮和收展
  • 自动生成各种语言代码,一键下载
  • 自动管理与测试接口用例,一键共享
  • 自动给请求JSON加注释,一键切换

对于前端

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

对于后端

  • 提供通用接口,大部分API不用再写
  • 自动生成文档,不用再编写和维护
  • 自动校验权限、自动管理版本、自动防SQL注入
  • 开放API无需划分版本,始终保持兼容
  • 支持增删改查、模糊搜索、正则匹配、远程函数等

 

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

自动生成封装请求JSON的Android与iOS代码、一键自动生成JavaBean或解析Response的代码

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

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

一图胜前言 - 部分基础功能概览
[以下Gif图看起来比较卡,实际在手机上App运行很流畅]
  

 

为什么要用APIJSON?

前后端 关于接口的 开发、文档、联调 等 10 大痛点解析

常见问题

1.如何定制业务逻辑?

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

2.如何控制权限?

在 Access 表配置校验规则,默认不允许访问,需要对 每张表、每种角色、每种操作 做相应的配置,粒度细分到 Row 级
https://github.com/APIJSON/APIJSON/issues/12

3.如何校验参数?

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

其它问题见 Closed Issues
https://github.com/APIJSON/APIJSON/issues?q=is%3Aissue+is%3Aclosed

快速上手

1.后端部署

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

2.前端部署

可以跳过这个步骤,直接使用 APIAuto-自动化接口管理工具 或 下载客户端App。
见  Android  或  iOS  或  JavaScript

下载客户端App

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

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

使用登记

         

更多 APIJSON 使用者

贡献者们

           
        

相关推荐

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

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

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

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

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

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

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

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

生态项目

APIAuto 机器学习测试、自动生成代码、自动静态检查、自动生成文档与注释等,做最先进的接口管理工具

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

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

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

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

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

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

apijson-node Node.ts 版 APIJSON,提供 nestjs 和 typeorm 的 Demo,支持 MySQL, PostgreSQL, MS SQL Server, Oracle

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

APIJSON Go 版 APIJSON,功能开发中...(不可用且长期未更新,期待热心开发者帮助完善或新增项目)

APIJSONKOTLIN Kotlin 版 APIJSON,基础框架搭建中...(不可用且长期未更新,期待热心开发者帮助完善或新增项目)

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

ApiJsonByJFinal 整合 APIJSON 和 JFinal 的 Demo

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

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

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

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

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

持续更新

https://gitee.com/TommyLemon/APIJSON/commits/master

码云主页

https://gitee.com/TommyLemon/APIJSON

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

APIJSON 的相关博客

JSON API免费接口

JSON API免费接口 各种提供JSON格式数据返回服务网站的API接口 这里为大家搜集了一些能够返回JSON格式的服务接口。部分需要用...

天气预报API,返回JSON

根据城市id获取天气信息

json与api- 天气api 博客词频分析

一、json基础 1.1 json的介绍   json现在成为各种程序与语言之间交互的一种数据格式,本质是文本,字符串。   json有两种...

使用 Json Schema 定义 API

本文地址:使用 Json Schema 定义 API 前面我们介绍了 Json Schema 的基本内容,这篇文章我们结合 jsonschema2pojo 工具深入分...

什么是JSON ,API,GET,POST请求

Json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。 1. "名称...

jenkins python api与json api不同

jenkins python api与json api不同

.net core 3.0中的Json API

在.net core 3.0中,内置了一套新的json api,主要用于去除asp.net core对json.net的依赖,同时也提供了更好的性能(直接处理...

Web API 返回JSon格式

.NET Web API中 环境: Newtonsoft.Json v9.0.0.1 1. 全局配置:   APPlication_Start()中配置以下代码, 可以将所有返回的J...

json-server模拟服务器API

一、npm安装 npm install --global json-server 二、使用:创建一个json数据文件,比如: { "students": [{ "...

APIJSON 的相关问答

还没有任何问答,马上提问

评论 (32)

加载中
有几个问题, 开发方面,如果一人兼职web项目内容全部的开发,用这个可以节省成本有哪些? 能在运行过程中,动态的配置请求url和请求获取的资源或执行的任务的action,并对动态配置的action进行权限配置,以及根据该请求访问或获取后端的资源么? 例如数据库里有一个表没有对应model,也没有在后端里编写直接根据该表信息(例如表名)获取该表数据的代码,但我想要在运行过程中获得这个表的信息,响应给前端,这个能做到吗?
05/23 16:07
回复
举报
补充:根据动态配置的处理action获得
05/23 16:08
回复
举报
孤独的探索号软件作者
只有业务逻辑需要写远程函数代码,其它都不用写任何代码 https://my.oschina.net/tommylemon/blog/889074 APIAuto 会将表和字段属性生成数据字典文档 http://apijson.org/auto/
07/11 13:52
回复
举报
只有一个问题,前端可以使用通用API接口调用数据,那么权限怎么控制?如何防止拖库
04/22 11:40
回复
举报
孤独的探索号软件作者
在 Access 表配置校验规则,默认不允许访问,需要对 每张表、每种角色、每种操作 做相应的配置,粒度细分到 Row 级 https://github.com/APIJSON/APIJSON/issues/14 防拖库靠的是系统整体的防空,APIJSON 作为 ORM 库能做到自动防 SQL 注入(预编译+白名单机制) https://github.com/APIJSON/APIJSON/issues/12
04/24 01:27
回复
举报
这是把服务端的工作推给了前端,前端得熟悉表结构,用JSON写相关SQL语句。实际生产中用处很小。
04/22 11:35
回复
举报
孤独的探索号软件作者
业务逻辑是后端通过远程函数来实现的,前端调用即可,并没有 “把服务端的工作推给了前端” https://github.com/APIJSON/APIJSON/issues/101 关于前端在 JSON 参数内的逻辑增加,这个是前端定制后端返回的数据内容和结构必然会带来的问题, RESTful 接口要定制分页数量、页码、排序,不也得加 pageSize,pageNum, "param": { "orderBy":{ "date": "DESC" } } 等类似 Mybatis-PageHelper 里的字段,导致前端逻辑增加? 前端要定制得越多,就得传越多的信息,后端就得支持越多的定制需求,解析越多的参数, 用什么方式做都是这样,但 APIJSON 至少能保证后端不写代码,这又是其它开源库做不了的。 事物都是两面性的,不能“只享受利益不承担责任“, 软件开发没有银弹。 而且 APIJSON 提供了一套统一且简单清晰的规范以及丰富的示例: https://github.com/TommyLemon/APIJSON/blob/master/Document.md#3 加上 APIJSON 提倡后端把 测试用例(请求的URL和JSON参数)填好上传到 APIAuto-机器学习自动化接口管理工具,所以也不存在 “前端得熟悉表结构” http://apijson.org/auto https://user-images.githubusercontent.com/5738175/40827035-0eaef026-65af-11e8-9879-b7cbbace8ea1.jpg 所以前端直接点一下就有了 URL 和 JSON 参数,复制过来就行了。 https://user-images.githubusercontent.com/5738175/40827126-4c0593d0-65af-11e8-9155-5456b2866f6d.jpg 你的前提都错了,后面 “实际生产中用处很小” 也是凭空臆测。APIJSON 使用登记: https://github.com/APIJSON/APIJSON#%E4%BD%BF%E7%94%A8%E7%99%BB%E8%AE%B0
04/24 02:02
回复
举报
一定要使用自带的orm吗,不能使用mybatis jpa吗?
2019/12/27 17:21
回复
举报
孤独的探索号软件作者
APIJSON 的核心就是 APIJSONORM 这个 ORM 库,有不用写代码、自动实现 CRUD 等很多其它 ORM 都做不到的功能。 https://www.oschina.net/news/101787/apijson-3-1-0-released 不过在你自己的项目中,APIJSON 和其它 ORM 库(建议 Mybatis,可以写很复杂的 SQL 语句)搭配使用也行。
01/05 22:06
回复
举报
apijson 能支持c++ 或 lua 语言的实现吗?
2019/12/05 15:25
回复
举报
孤独的探索号软件作者
你好,对语言(Java, C#, C+,Lua,Go 等)或者网络通讯方式(HTTP, TCP, UDP 等) 全都没有任何限制, 只要支持 封装与解析 JSON 和 对数据库 CRUD 的都可以按照通用文档里的设计规范来实现 https://github.com/APIJSON/APIJSON/blob/master/Document.md#3 如何实现其它语言的APIJSON? https://github.com/APIJSON/APIJSON/issues/38
2019/12/14 23:33
回复
举报
孤独的探索号软件作者

引用来自“懒神”的评论

我本人是做后端,个人根据资料的内容感觉,这个工具实际上偏向于公开性质的内容展示。普通小型展示型项目用这个可以快速上手,不知道这样的感觉是不是对的。

引用来自“孤独的探索号”的评论

对的。 我在 APIJSON 群里看到群友提到的公司项目, 有的是用 APIJSON 做 数据中心、可视化 等内部项目, 有的是 做 小程序、公众号、后台管理 等对外的项目。 不仅是可以快速上手,实际上也能极速开发哦, 增删改查、提取请求参数、封装返回JSON、校验参数的数据和结构 都不用写代码了, 省去了后端大量的开发成本,以及前后端关于接口的各种沟通成本。 https://github.com/TommyLemon/APIJSON/wiki

引用来自“懒神”的评论

3Q,不错。你这个可以不用跟hibernate类对比,因为你的设计理念与他们不一样。你的基础设计理念可能是:是后端为接口化,作为前端的数据提供者与异步/同步协助处理者,逻辑与展示由前端来做。而hibernate是更接近存粹的工具向ORM,它的目的是兼容更多数据库,让一套代码可以跑在不同数据库却有近乎相同的效果。从发展的角度来说,我好些年前有定义,未来后端实际上可以做出接口提供者(服务提供者),提供给不论是web/手机APP/AI等等调用。现在手机的webapp类型开发实际上就是类似的了,你的这个工具实际上做的就是这样的事情。 如果说最老的后端自己拼写html为1.0版本;后端将模板html与代码分开处理反回给前台最终效果为2.0版本;后端前端设计理念完全分离,后端看作数据处理者服务提供者的方式可以看作3.0版本。你的这个算是3.0.1BETA的小版本。目前算是简单的,这种思路实际上是可以发扬到更大。

引用来自“孤独的探索号”的评论

感谢。 APIJSON 相当于银行的 ATM 机,提供自助服务,能快速解决大部分常见问题,不用排队等柜员(后端同事)手动操作。

引用来自“孤独的探索号”的评论

APIJSON 目前 Java 版支持 MySQL, PostgreSQL, Oracle,其它语言实现见文末的 其它项目。 原本我也打算调用 Hibernate 实现解析成 SQL,但发现静态代码很难满足动态的参数解析, 而且 Hibernate 实现 JOIN 等连表功能太麻烦,就自己写了 SQLConfig 来实现 JSON->SQL 的解析。

引用来自“TGVvbmFyZA”的评论

你這難道不是RESTful的標準姿勢?不知道你這種自動化會有什麼特別的優點嗎?
后端无需再编写大量 逻辑重复但又难以抽象 的 CRUD 代码, 前端无需再等待后端 开发接口、编写文档 才能 调用接口实现功能。 https://gitee.com/TommyLemon/APIJSON/wikis/Home
2018/12/22 17:53
回复
举报
孤独的探索号软件作者

引用来自“懒神”的评论

我本人是做后端,个人根据资料的内容感觉,这个工具实际上偏向于公开性质的内容展示。普通小型展示型项目用这个可以快速上手,不知道这样的感觉是不是对的。

引用来自“孤独的探索号”的评论

对的。 我在 APIJSON 群里看到群友提到的公司项目, 有的是用 APIJSON 做 数据中心、可视化 等内部项目, 有的是 做 小程序、公众号、后台管理 等对外的项目。 不仅是可以快速上手,实际上也能极速开发哦, 增删改查、提取请求参数、封装返回JSON、校验参数的数据和结构 都不用写代码了, 省去了后端大量的开发成本,以及前后端关于接口的各种沟通成本。 https://github.com/TommyLemon/APIJSON/wiki

引用来自“懒神”的评论

3Q,不错。你这个可以不用跟hibernate类对比,因为你的设计理念与他们不一样。你的基础设计理念可能是:是后端为接口化,作为前端的数据提供者与异步/同步协助处理者,逻辑与展示由前端来做。而hibernate是更接近存粹的工具向ORM,它的目的是兼容更多数据库,让一套代码可以跑在不同数据库却有近乎相同的效果。从发展的角度来说,我好些年前有定义,未来后端实际上可以做出接口提供者(服务提供者),提供给不论是web/手机APP/AI等等调用。现在手机的webapp类型开发实际上就是类似的了,你的这个工具实际上做的就是这样的事情。 如果说最老的后端自己拼写html为1.0版本;后端将模板html与代码分开处理反回给前台最终效果为2.0版本;后端前端设计理念完全分离,后端看作数据处理者服务提供者的方式可以看作3.0版本。你的这个算是3.0.1BETA的小版本。目前算是简单的,这种思路实际上是可以发扬到更大。

引用来自“孤独的探索号”的评论

感谢。 APIJSON 相当于银行的 ATM 机,提供自助服务,能快速解决大部分常见问题,不用排队等柜员(后端同事)手动操作。

引用来自“孤独的探索号”的评论

APIJSON 目前 Java 版支持 MySQL, PostgreSQL, Oracle,其它语言实现见文末的 其它项目。 原本我也打算调用 Hibernate 实现解析成 SQL,但发现静态代码很难满足动态的参数解析, 而且 Hibernate 实现 JOIN 等连表功能太麻烦,就自己写了 SQLConfig 来实现 JSON->SQL 的解析。

引用来自“TGVvbmFyZA”的评论

另外 Spring Boot 1.x 差評
只是 Demo 用了 SpringBoot,自己升级呗。 后续我们可能也会升级到最新。 https://github.com/TommyLemon/APIJSON/tree/master/APIJSON-Java-Server
2018/12/22 17:51
回复
举报
孤独的探索号软件作者

引用来自“超级大黑猫”的评论

希望项目继续加强文档 文档不足不利于做团队推广和使用 只能个别爱好者喜欢
群友贡献了一个非常详细的图文入门文档 https://github.com/TommyLemon/APIJSON/blob/master/%E8%AF%A6%E7%BB%86%E7%9A%84%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md
2018/12/22 17:50
回复
举报

引用来自“懒神”的评论

我本人是做后端,个人根据资料的内容感觉,这个工具实际上偏向于公开性质的内容展示。普通小型展示型项目用这个可以快速上手,不知道这样的感觉是不是对的。

引用来自“孤独的探索号”的评论

对的。 我在 APIJSON 群里看到群友提到的公司项目, 有的是用 APIJSON 做 数据中心、可视化 等内部项目, 有的是 做 小程序、公众号、后台管理 等对外的项目。 不仅是可以快速上手,实际上也能极速开发哦, 增删改查、提取请求参数、封装返回JSON、校验参数的数据和结构 都不用写代码了, 省去了后端大量的开发成本,以及前后端关于接口的各种沟通成本。 https://github.com/TommyLemon/APIJSON/wiki

引用来自“懒神”的评论

3Q,不错。你这个可以不用跟hibernate类对比,因为你的设计理念与他们不一样。你的基础设计理念可能是:是后端为接口化,作为前端的数据提供者与异步/同步协助处理者,逻辑与展示由前端来做。而hibernate是更接近存粹的工具向ORM,它的目的是兼容更多数据库,让一套代码可以跑在不同数据库却有近乎相同的效果。从发展的角度来说,我好些年前有定义,未来后端实际上可以做出接口提供者(服务提供者),提供给不论是web/手机APP/AI等等调用。现在手机的webapp类型开发实际上就是类似的了,你的这个工具实际上做的就是这样的事情。 如果说最老的后端自己拼写html为1.0版本;后端将模板html与代码分开处理反回给前台最终效果为2.0版本;后端前端设计理念完全分离,后端看作数据处理者服务提供者的方式可以看作3.0版本。你的这个算是3.0.1BETA的小版本。目前算是简单的,这种思路实际上是可以发扬到更大。

引用来自“孤独的探索号”的评论

感谢。 APIJSON 相当于银行的 ATM 机,提供自助服务,能快速解决大部分常见问题,不用排队等柜员(后端同事)手动操作。

引用来自“孤独的探索号”的评论

APIJSON 目前 Java 版支持 MySQL, PostgreSQL, Oracle,其它语言实现见文末的 其它项目。 原本我也打算调用 Hibernate 实现解析成 SQL,但发现静态代码很难满足动态的参数解析, 而且 Hibernate 实现 JOIN 等连表功能太麻烦,就自己写了 SQLConfig 来实现 JSON->SQL 的解析。
另外 Spring Boot 1.x 差評
2018/12/22 13:07
回复
举报

引用来自“懒神”的评论

我本人是做后端,个人根据资料的内容感觉,这个工具实际上偏向于公开性质的内容展示。普通小型展示型项目用这个可以快速上手,不知道这样的感觉是不是对的。

引用来自“孤独的探索号”的评论

对的。 我在 APIJSON 群里看到群友提到的公司项目, 有的是用 APIJSON 做 数据中心、可视化 等内部项目, 有的是 做 小程序、公众号、后台管理 等对外的项目。 不仅是可以快速上手,实际上也能极速开发哦, 增删改查、提取请求参数、封装返回JSON、校验参数的数据和结构 都不用写代码了, 省去了后端大量的开发成本,以及前后端关于接口的各种沟通成本。 https://github.com/TommyLemon/APIJSON/wiki

引用来自“懒神”的评论

3Q,不错。你这个可以不用跟hibernate类对比,因为你的设计理念与他们不一样。你的基础设计理念可能是:是后端为接口化,作为前端的数据提供者与异步/同步协助处理者,逻辑与展示由前端来做。而hibernate是更接近存粹的工具向ORM,它的目的是兼容更多数据库,让一套代码可以跑在不同数据库却有近乎相同的效果。从发展的角度来说,我好些年前有定义,未来后端实际上可以做出接口提供者(服务提供者),提供给不论是web/手机APP/AI等等调用。现在手机的webapp类型开发实际上就是类似的了,你的这个工具实际上做的就是这样的事情。 如果说最老的后端自己拼写html为1.0版本;后端将模板html与代码分开处理反回给前台最终效果为2.0版本;后端前端设计理念完全分离,后端看作数据处理者服务提供者的方式可以看作3.0版本。你的这个算是3.0.1BETA的小版本。目前算是简单的,这种思路实际上是可以发扬到更大。

引用来自“孤独的探索号”的评论

感谢。 APIJSON 相当于银行的 ATM 机,提供自助服务,能快速解决大部分常见问题,不用排队等柜员(后端同事)手动操作。

引用来自“孤独的探索号”的评论

APIJSON 目前 Java 版支持 MySQL, PostgreSQL, Oracle,其它语言实现见文末的 其它项目。 原本我也打算调用 Hibernate 实现解析成 SQL,但发现静态代码很难满足动态的参数解析, 而且 Hibernate 实现 JOIN 等连表功能太麻烦,就自己写了 SQLConfig 来实现 JSON->SQL 的解析。
你這難道不是RESTful的標準姿勢?不知道你這種自動化會有什麼特別的優點嗎?
2018/12/22 13:04
回复
举报
更多评论
32 评论
274 收藏
分享
返回顶部
顶部