美文网首页互联网科技@IT·互联网程序员
一个正在被API驱动的互联网时代

一个正在被API驱动的互联网时代

作者: vinningFly | 来源:发表于2018-02-27 12:21 被阅读129次

     API做为每个重要信息技术趋势的核心内容,移动设计、云计算、物联网、大数据及社交网络等应用都依赖于一个基于web的界面与它们的分布式组件进行连接,为全球范围内的各个商业领域提供具有创新性和颠覆性的解决方法。而API的使用既是催化剂,也是促成成果的主要力量

    什么是API? 

    应用程序接口(英文:Application Programming

    Interface,缩写API),就是接口,也是通道,负责一个程序和其他软件的沟通,本质是预先定义的函数。

    举个简单的栗子,假设物流中“货物”是数据,存放货物的“总仓库”是数据库,“店铺”是我们的网站、App。页面上显示的内容、数字,以及用户的操作请求和结果都是需要不停搬运的“货物”数据,则负责调配分配打包的中转站就是API,店铺小哥直接从中转站取货就好。

    对于软件提供商来说,开放API,让别的应用程序来调用,形成生态,软件才能发挥最大的价值,才能更有生命力。

    对于应用开发者来说,有了开放的API,就可以直接调用多家公司做好的功能来做自己的应用,不需要所有的事情都自己操刀,节省精力。

    API就是技术服务商为客户提供服务的方法。

    作为一名程序员,如果没跟API打过交道同样是件不可思议的事情。

    当然我们在互联网时代所说的狭义的API概念可能与桌面软件时代广义的API有所不同。在维基百科中是这么定义的:API就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。

    API的哲学意义

    生活中,每天的穿衣、吃饭、如厕、睡觉是最基本的诉求。但人类文明发展至今,我们穿的衣服、出行搭载的交通工具、吃饭的粮食、住的房子等等一切几乎很少是我们直接参与生产的,在经济学中我们称之为社会分工。分工最大的好处,就是熟能生巧,让专业的人做专业的事,而需要这些资源的人,可以拿自己生产的物资间接(货币)或直接的交换。

    追溯到社会的发展,从最简单的采集狩猎时代,逐渐演变成现在这样错综复杂的结构,在未来它会继续的演化产生更细致的分工。在这个漫长演化过程中,人类的社会文明中逐渐产生了语言、文字、货币、契约等这些维系社会结构的基本要素;类比信息时代,这些要素就是不同的社会分工群体之间互相调用的“API”规范。

    原子、电子之间的相互作用也好,人类社会的交易合作也好,IT系统之间通讯的API也好,其哲学意义的本质都是一种契约(规则),这个所有成员共同维护的契约让难以解决的复杂问题变得简单。

    API的分类

    早期计算机网络应用程序有C/S和B/S两种架构模式,这两种架构模式各有优缺点。随着Web技术越来越成熟,各种技术规范也层出不穷,后来在大型互联网公司中流行起来的开放平台促成了第三种架构:OpenAPI。

    应用程序API

    这里主要指的是非Web应用程序,它为第三方开发者提供了可控访问软件内部功能的接口。例如:Windows API(https://msdn.microsoft.com/zh-cn/library/windows/desktop/ff818516(v=vs.85).aspx)和Android(https://developer.android.com/guide/index.html),他们通过暴露操作系统核心API,使应用程序在获得授权的情况下使用受系统保护的计算机硬件资源(IO设备、GPS等);浏览器同样为JavaScript准备了API(https://developer.mozilla.org/zh-CN/docs/Web/API),从而使HTML、CSS、JavaScript经过渲染显示出各种程序设定的文字、图像及声音等。

    应用程序API通常适用于当前设备内的应用程序交互。

    基于Web的私有API和OpenAPI

    和应用程序API比起来,RESTful

    API、OpenAPI更被Web程序员所熟知。它们是更高级的API(资源和业务属性更强)。根本上它是脱离操作系统的限制,从Web资源的角度定义了API交互的规则。 

    Web服务端通过RESTful API向客户端提供数据资源的访问通道,PC浏览器、iOS、安卓等平台中运行的终端APP能够按照既定的规则使用服务器中的数据,使分布在各处的用户可以借助不同的设备连接到服务中心,服务商以此提供娱乐、购物、聊天、内容咨询等。

    在私有API中,还有一种微服务API,它与微服务架构风格息息相关。但微服务API一般无法在公网使用的,它使几个相对简单的子系统有机结合,形成一个整体并对外提供一个足够复杂的服务。OpenAPI是对外部IT系统提供的一种资源调用方案,一般都有严格的鉴权规则,来确保资源被安全的使用。

    用一张表格比较不同API的特点:

    OpenAPI会成为IT系统的标准功能

    现在,你可以打开百度,搜索关键词“开放平台”。浏览检索到的结果,你会发现几乎所有耳熟能详的互联网公司都有自己的开放平台生态,他们通过OpenAPI让开发者可以方便的使用他们的服务,并以此扩大自己的影响力。

    一个既成事实是:没有API,所有的IT系统都会成为数据孤岛;一个IT系统的OpenAPI被其它IT系统调用的规模,是这个IT系统价值的关键指标。我认为,IT系统之间的API经历了3个阶段:

    以懒猪行( 阿里云API应用创新大赛参赛企业)的模式和经验为例:懒猪作为旅业S2B平台Top1,掌握丰富的境外目的地落地资源,为了把这些资源的价值最大化,我们充分借助各大OTA平台的OpenAPI向分销商家赋能,让懒猪的S端资源与国内的旅业生态无缝接合。同时,在未来懒猪会借助OpenAPI系统,让下单、订单处理等过程变得可以程序化,使与合作伙伴业务能力的全面对接成为可能。这对业务团队的人效提升是相当可观的,在IT时代我们应当这么做,像马克思说的:科技是第一生产力。

    阿里云已将其业务能力完全API化,并提供多语言SDK。它凭借一套OpenAPI,让开发者可以通过内部编程的方式灵活的部署配置公有云产品,而且OpenAPI使得调用云端资源变得比使用自己本地的资源还方便,IT系统之间的合作不就应该是这样子嘛。建议访问https://api.aliyun.com感受一下。

    最后,以“Gall’s Law”结尾

    A complex system thatworks is invariably found to have evolved from from a simple system thatworked.

    A complex systemdesigned from scratch never works and cannot be made to work.You have to startover,beginning with a working simple system.

    ***"A simplesystem may or may not work.”

    互联网时代的上半场还没有结束,API会让“互联”二字演绎的更加透彻,让承载人类文明的全球信息系统更加紧密相连。

    扩展阅读

    [1] 理解面向HTTP API的REST和RPC (http://www.oschina.net/translate/understanding-rest-and-rpc-for-http-apis)

    [2] OpenAPI规范 (https://github.com/OAI/OpenAPI-Specification)

    [3] API文档规范Swagger UI (https://swagger.io/docs/specification/about/)

    简短介绍

    PC成就了Web,Web成就了大数据和云计算,大数据和云计算又将成就人工智能,API作为一个关键的线索始终贯穿其中,将分散在互联网世界各处的信息和服务连接

    相关文章

      网友评论

        本文标题:一个正在被API驱动的互联网时代

        本文链接:https://www.haomeiwen.com/subject/aiipxftx.html