APIJSON调研

APIJSON是什么

APIJSON是基于JSON网络传输协议以及基于这套协议实现的ORM库,具体来说APIJSON是基于接口的一种JSON传输结构协议,客户端可以定义任何JSON结构去向服务端发起请求,服务端就会返回对应结构的JSON字符串,所求即所得.

APIJSON定位以及使用场景

这个来自作者在文章中的声明:开发APIJSON是为了解决小公司、团队及个人开发者中客户端和服务端的接口、文档和沟通问题,简化开发、提高效率、缩短周期。希望大家不要用大公司的业务去要求APIJSON的功能、性能、安全等,而且个人也能力有限,所以只要方便、够用就好,

一般来说小公司只能开发小型系统,只有大公司才能开发大型系统。APIJSON解决的问题在小公司很容易出现并且容易造成致命的影响(开发周期长、产品上线迟导致资金链断裂而倒闭),但大公司因为资源(人才、资金、管理)充裕可以很好地避免这些问题。APIJSON降低了开发门槛和成本,使得小公司也能快速实现产品、节约资源,提高自己的竞争力

所以从这里也就可以看出在作者看来,apijson的定位是解决小公司、团队及个人开发者产品快速上线,在这里忽略了后端,只需要后端按照设计要求建立相关对象之后,前端就可以直接通过apijson这里的规范直接调用。

APIJSON好处

  1. 在简单的业务情景下,能够进行快速的开发。
  2. 后台只需要维护mode和表的映射就好了,不需要维护API接口文档和定义返回前端的数据接口,前端可以自己获取自己想要的数据类型。
  3. 减少了前后端的交通成本。
  4. 能够很好的兼容旧接口和新接口。
  5. 客户端可以定义任何JSON结构去向服务端发起请求,服务端就会返回对应结构的JSON字符串,所求即所得。
  6. 对于后端,提供通用接口,大部分API不用再写

APIJSON缺点

  1. 前端需要和后端沟通数据库设计、数据处理、方式,前端接口开发需要完全了解后端设计的数据库
  2. 有将后端所有任务都替代的想法,前端现在要承担原来后端的任务和责任,压力巨大,不甚讨巧。
  3. 功能太过复杂,学习成本太高。
  4. 占用资源大。大厂用不着 小公司用不起。
  5. 复杂业务场景下,极大的增加客户端的工作量。
  6. 前后端使用文档不太清晰。

APIJSON性能

这里引入作者文章说的话,JSON数据很轻量对客户端设备的性能影响可以忽略不计,至于web前端作者介绍较少不好回答。

APIJSON接口安全

  1. APIJSON会对请求的格式进行校验。
  2. APIJSON只有GET,HEAD请求才是明文,其它如POST都是非明文,这个和传统方式是一样的。
  3. APIJSON会对非GET、HEAD请求的请求方法、结构、内容进行严格校验。

APIJSON需要完善的地方

按照作者说的需要完善的地方其实就是细分场景的配置,也就是说对权限的要求,所以如果项目对权限要去较高以及项目设计涉及到资金方面的需要慎重考虑。

总结

关于apijson在调用形式上确实和传统的严格意义上的前端和后端不太一样,他弱化了后端,将查询等操作的侧重点放到了前端,加少了后端的工作,省去了前端跟后端关于接口返回方面的沟通问题(因为返回格式以及参数需要前端自己在接口中定义),但是它的学习成本很高,而且增加了前端的工作量,业务越复杂的场景对前端工作量影响越大。