
你有没有用过天气App打开软件当下的温度、湿度、风力等数据全都清晰显示出来。不知道大家有没有好奇过这个天气App难道是自己自带测温测风的设备吗答案当然是否定的。它只是主动向中央气象台调取了数据。这个软件之间互相“询问、调取数据”的过程就是我们要说的API。官方定义APIApplication Programming Interface应用程序编程接口是一组预先定义好的函数、协议和工具用于不同软件应用之间进行交互和通信。它明确规定了各个软件组件之间请求数据、获取服务的各项规则。换成大白话来讲API就是各个程序之间的传话员。给大家举个通俗易懂的餐厅例子我们去餐厅吃饭不会自己冲进后厨炒菜只需要看着菜单跟服务员说出自己的点餐需求。服务员会把你的需求传递给后厨等菜品做好后再端到你的面前。在这个完整的过程里服务员扮演的角色就是API。菜单就是API文档清晰告诉你可以获取哪些服务、调取哪些数据你点餐的这个行为就是调用API后厨加工制作菜品的过程就是服务器处理需求服务员将菜品端上桌就是API返回最终结果。我们吃饭不需要了解后厨有多少厨师、用的什么厨具、调料如何配比只需要下单等待用餐就够了。同理天气App也不需要知道气象局的数据存储在哪个数据库、如何统计更新只需要通过API发送请求询问“北京今日气温是多少”就能快速获取对应的天气数据。我们日常点外卖、查快递物流、使用微信支付这些常见操作的背后全都是API在默默完成数据传递、信息对接的工作。那API到底有什么作用其实每一个API就好比一张专属菜单上面清晰标注着你可以向我获取哪些内容、以什么方式发起请求、最终能得到什么样的结果。至于后台具体的运作流程、复杂的操作细节完全不需要使用者关注。API的核心价值可以总结为一句话让他人能够使用你的程序功能和数据同时无需知晓后台复杂的运作流程和底层代码。程序员圈子里有句很无奈的话“我就改个按钮颜色而已”之所以无奈是因为前端页面的样式修改根本不会涉及到后端API的内容。抛开这些工作小烦恼API的价值毋庸置疑它让不同的软件、程序可以互相对接通信同时彼此独立不用开放底层源码。其实我们每天都在频繁使用API只是自己没有察觉。大家可以回想一下日常的手机操作刷朋友圈时App通过API向服务器请求数据获取好友最新发布的动态点外卖时App通过API对接商家后台查询可下单的菜品、套餐及门店信息线上付款时App通过API对接支付平台核实扣款状态、完成交易确认查询快递时App通过API对接快递公司系统获取包裹的实时运输位置。我们一天之内使用API的次数根本数不清。但它始终隐藏在后台不被用户感知。而这也是优质API的评判标准默默提供服务让用户使用体验流畅却完全察觉不到它的存在。