api接口是什么意思
在一些外汇经纪商以及平台搭建公司的网站经常会看到的一词就是FIX API,FIX API是一个什么东西?关于什么是FIX(金融信息交换协议)相信很多人都听过,我们之前的文章也有介绍过,聊聊什么是API。
【度娘解释】
度娘的解释是这样的:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
可能作为一个非学程序的人,我唯一能看懂的只有两个字:接口。
API=接口。
【老司机解释】
那么再看看另外的网上老司机解释:
“一个联通前端和后端的通道,通常用字段来做暗语,就叫API。”(by 某少女心的PM)
“API是,面向网页、手机APP等终端设备和应用,提供和网站后台进行交互的入口。”(by 某经验丰富的后端大神)
“这是个哲学问题,API应该是服务开发者和服务使用者之间制定的关于如何服务使用的约定。”(by 某段子手文艺前端男青年)
从老司机们的描述中,我们看到和API有关的总有两个角色出现:”前端-后端“、”网页APP-网站后台“、”开发者-服务使用者“;而API发挥的则是:”联通xxx的通道“、”进行交互的入口“、”xxx的约定“等串联那两个角色的作用。
【普通人解释】
似乎还是有些不懂,我们举个例子从普通人的角度来解释下:
这是一个关于仓库和店铺的故事:
这是一个和物流有关的故事,首先我们设定两个场所:一个叫仓库,一个叫店铺。仓库是囤积所有货物的地方,库中的货物按照一定的规矩摆放。而店铺有很多,分散在各地;店铺总需要从仓库调货,货物运达后会被按照能吸引顾客的方式陈列在货架上。
那么问题来了:我们能想到,在店铺陈列时几乎不会与仓库存货的摆放一样(不能理解的想想宜家)。如果店员小哥贸然来到仓库自己取货必然会遇到很多困难(假设仓库很庞大,小哥并不是仓库管理员)。另外,若店铺搞促销要对几种货物组合打包(买洗发水送赠品牙刷之类的),不管是在仓库或店铺进行,也必然会影响到它们的正常运作。如何帮助店铺更方便的从仓库中调货,又避免仓库内混乱不堪?(请不要纠结“店铺自己不是应该有小仓库嘛”这种事情,请关注比喻本身…)
现在,我们在这个调配货物的过程中加入一个中转环节。店铺告诉中转站他们需要什么,由中转站专业调配分配打包,等待店铺小哥前来取走。于是问题就这么愉快地解决了。
在这个物流的故事中“货物”就是数据,存放货物的“总仓库”可以看做数据库,而“店铺”就可以看做我们的网站、App。我们页面上显示的内容、数字,以及用户的操作请求和结果都可以看做是“货物”——数据,会不停的经历这个运输过程。货物在仓库“按规矩摆放”可以看做数据库的存储结构;在店铺那头,货品的陈列”需要能够吸引到客户“,就代表了我们在设计网站、App的页面信息时需要注重用户体验一般。前端页面的数据展示与后端数据库的存储结构的不一,便是店铺陈列与仓库摆货规则的不一。我们的页面需要的数据,如果都直接去连搜索数据库,就会像故事中的店员去仓库找货物一样没效率。此外,通常我们的产品是由很多流程组成的,其中充满了判断逻辑和计算,这就好比故事中店铺的促销活动时需要”货品再组合“。如果把这些对数据的操作放在数据库或者页面上进行则会降低他们的运作效率(一般来说情愿放在前端也不放在数据库,数据库的运作更加重要。而放在前端页面来做这些事情,就是我们通常说的”写死“)。
我想大家都能猜到,故事中的中转站就是我们所说的API接口了。
程序员们在争吵的,其实是如何定义这个API中的内容。根据上面的故事,中转站需要根据店铺的要求预先调配好货物,并且在必要的时候进行分配打包。而这个调配分配打包的过程就是程序员争论的——API中所要包含的字段、计算、逻辑判断。作为设计师,你的设计的页面、流程都极大的影响甚至是决定了前后端这个”物流”的过程。而这个“物流”的过程就是前后端的交互逻辑(看到这里的“交互”二字,交互设计师们你们有什么感想~)。
另外,我们称网页、APP为前端(APP称为客户端),简单来说他们都是运行在用户的终端上的(手机,或自己电脑的浏览器里)。而数据库和API我们都称他们为服务端、后端,简单来说,因为他们远隔万里运行在世界另一边的高级电脑里(即服务器)~。
上面的故事只是为了帮助大家更具象的理解API的大致原理,入个门。而实际情况下,前后端的运行逻辑会更加复杂(比如故事中仓库到店铺是单向流通,而真实的程序中则是双向的)。
【结语】
API存在的时间已经有二三十年了,但真正意识到API重要性的是2005年前后的Web2.0公司,通过API他们可以高效率无冲突地与合作伙伴和客户分享应用。一个强有力的API战略已经不仅仅是一个软件层面的工作,而是一个强力的业务实践。所以外汇市场会有一些FIX API接口服务,为机构交易者和大交易量交易者提供直接连接市场,从而获得更好的价格的一种解决方案。