API全称是:Application Programming Interface,即:应用程序接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。开发人员可以使用这些API接口进行编程开发,而又无需访问源码,或理解内部工作机制的细节。
比较常见的现实场景是,在开发安卓应用时需要使用到安卓系统提供的API,在进行Windows桌面应用开发时需要用到微软系统提供的API,在进行微信小程序开发时可使用微信开放接口API。
更为常见的是,API接口很可能是远程的服务端API,其背后采用Java、PHP、C#、Pyhon、C/C++、Ruby、Scala等一种或多种后端语言开发搭建,提供了数据存储、通讯、各类服务等功能。一般是使用HTTP协议进行通讯,使用JSON格式序列化返回接口结果和数据。
API接口是项目开发过程中必要的组成部分之一,是客户端应用与服务端应用通信和桥梁。
除此之外,从专业角度来说,API不仅代表着接口本身,还蕴含了服务端的整体系统架构、数据存储、服务端管理、第三方系统的整合等,只是对外看来,表现出来的是API接口。
可以说,API接口直接使用方是客户端应用,地位是客户端与服务端之间的通信桥梁,是信息化的桥梁,所担负的作用是把业务功能通过接口服务形式具体化,为应用编程开发提供技术支持。
作为服务端开发,需要考虑如何快速有效开发API接口。
正所谓,“君子生非异也,善假于物也。”选择合适的方法、工具,可以让你开发API接口更加事半功倍。
对于同一件事情,不同的做事方式,所需要的时间、成本和难度也各不相同。特别对于技术小白,不同做法,难度不同。
如果不得要领,或摸索前进,或从头开始开发API接口,其难度可能相当于爬一座山,从山脚攀登到山顶,中途不知道怎么走,需要什么工具和经验,一切都是未知状态,需要自己去探索、尝试、调整。
如果选择一款合适的开源框架,选对了开发工具,难度会大大降低,这时的难度可能会降到跑一个田径场,绕着田径场多跑几圈,虽然也要耗时间和体力,但每次跑的路线你都已经熟悉,练习得越多,你会越熟练。
如果有一套现成的产品或半成品,只需要根据原来设定的规则进行扩展和二次开发,其难度可能会变成跟百米赛跑一样,因为有了前面的积累,达到了厚积薄发的境界,只要稍微修改调整就可以达到目标。
当然,最高境界是自己什么都不用做,是最省事省力省时间的,这时的难度就类似你通过一个传送门或时光机,瞬间就到达了你想要去到的目的地。
你当前是处于哪个境界?
下面将来介绍,开发API接口需要涉及哪些方面,以及不同难度和不同境界下的解决方案。
小编在大学花了四年时间学习软件工程这门专业,尔后又花了近十年时间在上市公司、互联网、创业等公司负责后端系统的开发,经历了商城、游戏、广告等行业的项目开发,同时在接口开源框架有近5年的积累,结合教育背景、工作经验、业务知识、项目和技术,总结了一个API接口应该包括但不限于以下方面:
概括来说,通常,人们会觉得API接口只有:
接口文档
接口示例
客户端SDK包
相关视频
接口鉴权
因为这些是API接口容易被外界所看得到的,但这只是API接口冰山的一角。在API接口的背后,还有需要与第三方的整合与对接,需要为BI提供的数据分析,需要进行接口流量、响应时间的统计与监控,还有相关的基础设施和基建(例如:域名、服务器、数据库等)。