API接口是什么?
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接口更加事半功倍。
对于同一件事情,不同的做事方式,所需要的时间、成本和难度也各不相同。特别对于技术小白,不同做法,难度不同。
如果不得要领,或摸索前进,或从头开始开发API接口,其难度可能相当于爬一座山,从山脚攀登到山顶,中途不知道怎么走,需要什么工具和经验,一切都是未知状态,需要自己去探索、尝试、调整。
如果选择一款合适的开源框架,选对了开发工具,难度会大大降低,这时的难度可能会降到跑一个田径场,绕着田径场多跑几圈,虽然也要耗时间和体力,但每次跑的路线你都已经熟悉,练习得越多,你会越熟练。
如果有一套现成的产品或半成品,只需要根据原来设定的规则进行扩展和二次开发,其难度可能会变成跟百米赛跑一样,因为有了前面的积累,达到了厚积薄发的境界,只要稍微修改调整就可以达到目标。
当然,最高境界是自己什么都不用做,是最省事省力省时间的,这时的难度就类似你通过一个传送门或时光机,瞬间就到达了你想要去到的目的地。
你当前是处于哪个境界?
下面将来介绍,开发API接口需要涉及哪些方面,以及不同难度和不同境界下的解决方案。
一个API接口有什么?
小编在大学花了四年时间学习软件工程这门专业,尔后又花了近十年时间在上市公司、互联网、创业等公司负责后端系统的开发,经历了商城、游戏、广告等行业的项目开发,同时在接口开源框架有近5年的积累,结合教育背景、工作经验、业务知识、项目和技术,总结了一个API接口应该包括但不限于以下方面:
概括来说,通常,人们会觉得API接口只有:
- 接口文档
- 接口示例
- 客户端SDK包
- 相关视频
- 接口鉴权
因为这些是API接口容易被外界所看得到的,但这只是API接口冰山的一角。在API接口的背后,还有需要与第三方的整合与对接,需要为BI提供的数据分析,需要进行接口流量、响应时间的统计与监控,还有相关的基础设施和基建(例如:域名、服务器、数据库等)。
PHP接口开发用哪个开源框架?
当开发API接口时,如果是新项目,推荐选择一款合适的开源框架。那么,对于PHP开发或者是新手开发,可以选择一款合适的PHP开源接口框架,或者说是PHP开源接口框架,重点突出是会对接口的开源框架。
如果问百度,搜:接口框架。
第一个显示的是:PhalApi轻易级开源接口框架。
如果问谷歌,搜:接口框架。
第一个显示的还是:PhalApi轻易级开源接口框架。
如果问小编,那么小编推荐的也是PhalApi轻易级开源接口框架。
PhalApi(π框架),是一个轻量级PHP开源接口框架,专注于接口服务开发,支持HTTP/SOAP/RPC协议,拥有自动生成的在线文档、多种开发语言的客户端SDK包以及可重用的扩展类库,可用于快速搭建微服务、RESTful接口或Web Services。
PhalApi从2015年开源到现在,已有5年历史,社区活跃,文档、视频教程完整,并且很多开发者和公司都正在使用。
PhalApi开源版的在线接口文档:
PhalApi开源版提供的运营平台:
PhalApi开源框架官网:https://www.phalapi.net/ (可以免费下载)
更优质的接口开发工具
PhalApi是一款优秀的开源接口框架,通过它,可以自动生成在线接口文档,本身设计优雅,容易上手。通过PhalApi开源接口框架开发API接口,就像围着田径场跑步一样,每写一个接口等于跑一圈的话,写得越多,你会越熟练。并且,PhalApi还提供了很多封装好的可以自动生成CURD的数据接口,极大减少了编程的工作量。
不过,PhalApi本身只是一个框架,虽然提供了很多插件、扩展类库,但很多业务功能和接口,都需要自己重新设计和实现。
这时,可以使用PhalApi专业版,与开源版类似的是,也是提供了PHP源代码,以及前端源代码,也有齐全的开发文档,是PhalApi开源框架的升级版。但PhalApi专业版是一个很强大的工具,很多功能和模块已经是开发好,可以直接使用,或快速进行二次开发。
PhalApi开源框架专注于API接口开发,而PhalApi Pro专业版则定位于云平台的搭建,包括PaaS平台、SaaS平台、数据平台、接口平台等,PhalApi Pro专业版包括:
- API接口系统(100+款API接口直接可用,有PHP源代码)
- Platform开放平台(提供给开发者进驻和创建应用、申请接口权限)
- Admin管理后台(给内部管理员使用的总后台)
- 在线接口文档(实时生出的精美接口文档)
- 技术文档(提供给后端技术人员使用和参考的文档)
云平台的整体架构与业务流程如下:
专业版授权套餐分为:标准版和旗舰版,均可用于商业项目的快速开发。
- 特别地,针对接口这部分,PhalApi专业版提供的功能包括但不限于:
- 接口可视化设计与编程(自动生成PHP接口代码)
- 接口测试(接口黑盒测试)
- 接口流量统计(统计报表)
- 接口文档(自动生成)
- 接口权限分配(针对应用、账号和角色的权限分配)
- 接口鉴权(基于access_token和基于动态签名两套方案)
- 接口计划任务
可以说,PhalApi专业版,已经针对接口设计了大量的工作,你只需要在这个基础上专注业务接口开发即可,剩下的接口权限分配、统计、鉴权,都是直接现成可用的。并且,你能获取到专业版的源代码,开发完成后可以独立部署,也可以为你的项目申请软件著作权和版权。
PhalApi专业版提供的管理后台:
PhalApi专业版提供的开放平台:
PhalApi专业版提供的接口文档:
PhalApi专业版官网:http://pro.yesapi.cn/ (可以在线体验和下单购买)
API接口开发最高境界:Serverless免接口开发
就像武侠小说里说的那样,不出剑就把对方制胜了。
API接口开发的最高境界,是免接口开发,最好情况是我们不用编写任何代码,甚至什么事都不用做,就有现成的API接口可以直接用于项目开发。
这样的服务可称为Serverless。
无服务器运算(英语:Serverless computing),又被称为函数即服务(Function-as-a-Service,缩写为 FaaS),是云计算的一种模型。以平台即服务(PaaS)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供。
知乎Serverless
YesApi小白接口就是这样的技术服务商。
小白接口,已经累计为项目开发提供了500+款API接口,涵盖数据库、CDN存储、微信小程序、会员体系等API接口。
以数据库为例,小白接口就提供了非常全面简单且强大的数据接口:
从数据库开始,小白就已经提供了非常多的数据模型模板,建表加字段,对于小白来说都是轻而易举的事情。
在平台上,可以在线管理数据,导入导出,查看修改删除,一并俱全。
创建模型,调用接口操作数据后,你便可以实时看到接口流量的分析和统计。
还可以看到大屏幕实时大数据统计:
对于API接口这方面,小白接口经过3年时间,已经深耕得非常成熟,对于接口的权限分配、接口开关、接口统计、接口签名、接口功能、接口监控,都已经很成熟和稳定,并且还可以编写自己的云函数。
只需要一行代码,你就能通过云函数实现数据库的操作。例如:
1 |
1 | function ($params, $di) { $result = array('err_code' => 0, 'err_msg' => ''); $result['count'] = $di['db']->article_tbl->count('id'); // 模型名称后面须带上_tbl后缀 return $result; } |
云函数是基于PHP编写的,上面第3行代码,就实现了对数据库的总数统计。
又如,发送邮件,云函数的代码是:
1 |
1 | function ($params, $di) { $result = array('err_code' => 0, 'err_msg' => ''); // 第一个参数是收件人邮箱,第二个参数是邮件标题,第三个参数是邮件正文内容(HTML格式) $result['is_send'] = $di['email']->send('[email protected]', '邮件标题', '邮件内容'); return $result; } |
目前,YesApi云函数提供了以下服务,可快速用于接口开发。
通过云函数,你只需要参考代码模板,编写一行代码或者编写几行代码就能实现自己的业务逻辑,无需管理服务器即可运行移动后端代码。
YesApi小白接口官网:http://yesapi.cn/ (可免费注册开通使用)
总结对比
最后,总结开发API接口和几种方案对比。
从零开始、使用框架、使用产品、使用服务。
难度:相当于登山(很难)、相当于在田径场跑步(一般)、相当于百米赛跑(容易)、相当于使用了传送门(开挂)。
例如:视情况而定、使用PhalApi开源接口框架、使用PhalApi专业版、使用YesApi小白接口云服务。