iOS下 GraphQL与APIJSON的对比

APIJSON的口号是:

后端接口和文档自动化,前端(客户端) 定制返回JSON的数据和结构!

APIJSON的简介:

APIJSON是一种为API而生的JSON网络传输协议。
为 简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的API。
能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。
通过自动化API,前端可以定制任何数据、任何结构!
大部分HTTP请求后端再也不用写接口了,更不用写文档了!
前端再也不用和后端沟通接口或文档问题了!再也不会被文档各种错误坑了!
后端再也不用为了兼容旧接口写新版接口和文档了!再也不会被前端随时随地没完没了地烦了!

特点功能

在线解析

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

对于前端

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

对于后端

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

后端这部分是看的作者的描述,因为我对后端不了解

基础功能对比

1、数据模型结构创建对比

GraphQL强制前端在请求里填写所有需要的字段名,用换行分隔。
APIJSON则默认返回全部字段,可选 @column 来指定需要的字段。
很多时候我们会有查询单个对象(用户详情)的需求,往往对象里的字段几乎全都是需要返回的。
即便是查询列表,如果是没有冗余字段的表里,基本也是没个字段都需要用的!
GraphQL这种强制性的做法无疑会导致前端很多时候在很多对象里写10个以上的字段。
如果用APIJSON,就非常简洁。

2、数据调用对比

GraphQL没有状态码!
我们经常会碰到登录超时或其它设备登录要强制当前用户下线、付款时可能有密码错误、余额不足等各种情况。
这些都需要一个和操作成功(200)、其它错误 不一样的唯一标识,前端才能根据这些标识做不同的处理,例如跳到登录界面,自动切换付款的银行卡等。
GraphQL不提供状态码,也没看到其它的唯一标识。
所以前端除了能对错误进行提示,其它的操作根本不用想了!
APIJSON就提供了状态码,这样一来就可以根据不同的状态码,做不同的事情。

总结:

以上就是我对GraphQL和APIJSON相对于APP端做出的对比分析。
GraphQL创建数据模型强制要求写每一个字段,会写大量的代码。
APIJSON 非常简单方便,不用写过多代码。

你可能感兴趣的:(iOS下 GraphQL与APIJSON的对比)