APIJSON是啥?

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

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

特点功能

在线解析

  • 自动生成文档,清晰可读永远最新

  • 自动生成请求代码,支持Android和iOS

  • 自动生成所有JavaBean,一键下载

  • 自动管理测试用例,一键共享

  • 自动校验与格式化JSON,支持高亮和收展


对于前端

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

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

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

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

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


对于后端

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

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

  • 自动校验权限、自动管理版本

  • 查询API无需划分版本,始终保持兼容

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


举个栗子(微信朋友圈的动态列表):

请求:

{    "[]": {                               //请求一个array        "page": 0,                        //array条件        "count": 2,                "User": {                         //请求查询名为User的table,返回名为User的JSONObject            "sex": 0                      //object条件        },        "Moment": {            "userId@": “/User/id”         //缺省依赖路径,从同级object的路径开始        },        "Comment[]": {                    //请求一个名为Comment的array             "page": 0,            "count": 2,            "Comment": {                 "momentId@": “[]/Moment/id”  //完整依赖路径             }        }    }}

返回:

{    "[]":[        {            "User":{                "id":38710,                "sex":0,                "phone":"1300038710",                "name":"Name-38710",                "head":"http://static.oschina.net/uploads/user/1218/2437072_100.jpg?t=1461076033000"            },            "Moment":{                "id":470,                "title":"Title-470",                "content":"This is a Content...-470",                "userId":38710,                "pictureList":["http://static.oschina.net/uploads/user/585/1170143_50.jpg?t=1390226446000"]            },            "Comment[]":[                {                    "Comment":{                        "id":4,                        "parentId":0,                        "momentId":470,                        "userId":310,                        "targetUserId":14604,                        "content":"This is a Content...-4",                        "targetUserName":"targetUserName-14604",                        "userName":"userName-93781"                    }                },                {                    "Comment":{                        "id":22,                        "parentId":221,                        "momentId":470,                        "userId":332,                        "targetUserId":5904,                        "content":"This is a Content...-22",                        "targetUserName":"targetUserName-5904",                        "userName":"userName-11679"                    }                }            ]        },        {            "User":{                "id":70793,                "sex":0,                "phone":"1300070793",                "name":"Name-70793",                "head":"http://static.oschina.net/uploads/user/1174/2348263_50.png?t=1439773471000"            },            "Moment":{                "id":170,                "title":"Title-73",                "content":"This is a Content...-73",                "userId":70793,                "pictureList":["http://my.oschina.net/img/portrait.gif?t=1451961935000"]            },            "Comment[]":[                {                    "Comment":{                        "id":44,                        "parentId":0,                        "momentId":170,                        "userId":7073,                        "targetUserId":6378,                        "content":"This is a Content...-44",                        "targetUserName":"targetUserName-6378",                        "userName":"userName-88645"                    }                },                {                    "Comment":{                        "id":54,                        "parentId":0,                        "momentId":170,                        "userId":3,                        "targetUserId":62122,                        "content":"This is a Content...-54",                        "targetUserName":"targetUserName-62122",                        "userName":"userName-82381"                    }                }            ]        }    ]}

APIJSON怎么保证服务端返回给不同版本客户端的数据一致?

比如我上一个版本一个接口返回的值是a,现在这个版本要对所有版本客户端返回a+b,用传统方法只需要服务端把这个接口的返回值改下就好了,接口和客户端都不用改。

用APIJSON不就会导致对有些版本返回的是a,有些是a+b,这样就不能统一了?

APIJSON对请求的解析和响应的操作都是在服务端完成的,对应的是APIJSON(Server)里的project。

服务端可以拦截到相关请求,比如请求a的值,把原本返回的a改成a+b就能保证对所有版本客户端返回a+b。也不需要客户端改代码,至于接口就更不用管了,因为根本没有接口。

源码及文档

Github:https://github.com/TommyLemon/APIJSON

开源中国:http://git.oschina.net/TommyLemon/APIJSON


寻仙新马源码一键端_强大,腾讯开源前后端接口开发工具!相关推荐

  1. [整站源码]thinkphp家纺针织床上用品类网站模板+前后端源码

    模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计.手工书写DIV+CSS,完美兼容IE7+.Firefox.Chrome.360浏览器等:主流浏览器:结构容易优化:多终端均可 ...

  2. java版微信小程序登录商城源码MQ+VR全景+b2b2c多商家入驻前后端分离商城源码

    @源码地址来源: https://minglisoft.cn/honghu2/business.html 微信小程序登录代码: /*** Copyright © 2012-2017 <a hre ...

  3. 汽车4s店新车二手车租卖小程序源码系统 汽车行业通用版 含完整前后端+搭建教程

    分享一个汽车行业通用版系统源码,汽车4s店新车二手车租卖小程序源码系统,含完整前后端+搭建教程. 系统支持新车二手车的汽车在线展示.在线预约.购车计算器.贷款计算器,门店介绍,新闻资讯,汽车详情介绍等 ...

  4. 企业电子招标采购系统源码Spring Cloud + Spring Boot + MybatisPlus + Redis + Layui + 前后端分离 + 二次开发

    项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求.在企业里建立一个公平.公开.公正的采购环境,最大限度控制采购成本至关重要.符合国家电子招投标法律法规 ...

  5. TinkPHP内核仿每推推51领啦试客源码_PC源码+WAP端+APP原生代码_自带5套精美模板

    TinkPHP内核仿每推推51领啦试客源码_PC源码+WAP端+APP原生代码_自带5套精美模板 源码说明:TinkPHP内核上制作而成,是全国领先的免费试用网站!程序全开源无加密!带有wap手机端, ...

  6. 最新WordPress微信小程序社区论坛源码多端应用

    WordPress多端应用 WordPress作为后端生成多端小程序.快应用及APP,可用于资讯.新闻.博客.企业官网等 后端 使用开源博客建站系统wordpress和微慕小程序开源版插件 前端使用u ...

  7. 2021最新4合1即时通讯IM源码-服务端+PC+WEB+安卓+IOS完整原生源码

    介绍: 20214合1即时通讯IM源码 服务端+PC+WEB+安卓+IOS完整原生源码 附完整开发文档+视频搭建教程. 注意:此源码亲测可用,他处有小问题,我们已经修复.任何源码,难免有瑕疵,但不影响 ...

  8. .NET自助建站系统开发框架源码 PC端+WAP端+微信端

    C#自助建站系统开发框架源码 PC端+WAP端+微信端 源码免费分享,需要源码学习可私信我 基于 ASP.NET(C#)+ MSSQL(ACCESS) 的技术开发,开放源代码.使用Webform普通三 ...

  9. 360影视php视频系统源码,全新360影视2.0完整源码 双端APP+三级分销 附视频搭建教程...

    源码资源说明: 演示环境Linux+mysql+PHP5.6+伪静态支持这个程序基本环境要求不是很大,但有的地方还是要注意一下说一下需要的东西: 1.主机 2.域名 3.源码(会给大家打包,包含前后端 ...

最新文章

  1. Redis 高级特性(5)— 集群模式(主从模式、哨兵模式、cluster 集群模式)
  2. 北斗导航 | 坐标变换矩阵(CTM)与欧拉角(Euler)互相转换:Matlab源代码
  3. 揭秘北京2022冬奥会背后的技术
  4. 定义一个1 1=11 用c语言什么输出来,问题 A: C语言11.1(示例代码)
  5. cobertura 使用_使用Cobertura,JUnit,HSQLDB,JPA涵盖您的测试
  6. linux 最强shell,最牛B 的 Linux Shell 命令(一)
  7. 模式窗体 winform 1201
  8. SQL Server中删除重复数据的几个方法
  9. ASP.NET页面传值方式
  10. Thinkphp3.2在IIS中使用ISAPI_Rewrite去除index.php
  11. 趣谈网络协议栈,以太网基础MAC和PHY
  12. Linux事件驱动网络编程,Linux系统编程之事件驱动
  13. 可以获得高排名的B2B平台大全
  14. 【官方】追踪百度钱包品牌LOGO设计
  15. Byethost美国免费空间免费撸
  16. Python学习报告
  17. ubuntu系统镜像文件下载
  18. 六西格玛dfss_DFSS六西格玛设计的基本内容
  19. 图片怎么缩小尺寸比例不变?
  20. 多元线性回归分析spss结果解读_多元线性回归分析理论详解及SPSS结果分析

热门文章

  1. 关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案
  2. sql with as 用法
  3. 腾讯地图api如何根据地址获取经纬度
  4. uwsgi部署到nginx出现invalid request block size: 4161 (max 4096)...skip问题(亲测)
  5. mysql从innodb转到MyIsam的count查询效率极大提升
  6. php用array_merge实现无限级分类
  7. Linux之CentOS找不到configure
  8. response获取响应内容_Project Reactor 深度解析 - 1. 响应式编程介绍,实现以及现有问题
  9. jQuery获取HTML标签自定义属性值或data值
  10. python控制步进电机代码tx2_步进电机C语言控制,高手请进来指点一下!