
API 是推动现代企业数字化转型的基础。它不但连接了内部应用程序、合作伙伴和客户,同时也快速持续地向市场提供了各种新产品、版本和功能。
但当下还是以集中式的 API 交付为主。一个企业的对外 API 交付过程通常都是冗余而繁琐的,对企业内部的敏捷性、速度和效率都会产生不利的影响。
因此越来越多的企业,开始把目光转向 API 平台。利用 API 平台快速将生产者和消费者聚集到一起的特点,实现 API 交付的去中心化和民主化,以推动 API 交付的变革。
本文会介绍如何将平台思维应用于 API 交付,推动企业内部的敏捷性、速度和效率。
| 集中式 API 交付模式的痛点
API 对于现代企业越来越重要,但在大多数企业中,API 没能发挥应有的作用。全球知名的大型咨询公司麦肯锡(McKinsey)提到:
很多时候,企业没有做好准备,就匆忙去构建 API ,会出现许多问题,如系统混乱,冗余、维护不到位,透明度不高。这抵消了 API 可能带来的许多好处。而另外一些企业,花了数年时间去改造和替换原有的大型系统,一直以临时的方式添加 API ,实际也没有取得任何进展。
企业最初采用集中式 API 交付的模式,是为了集中数量少的、难以找到的 API 领域的精英。这种情况下,集中式 API 开发团队会根据 API 的整个生命周期,即从规范定义到开发再到部署和运营,负责端到端的 API 交付。但这种集中式 API 交付的模式存在一些问题:
*** 首先,集中式的 API 交付可以视为一种垄断。**消费者(如业务部门的开发者)没有其他选择,只能通过集中式 API 开发团队来获取 API 。
*** 其次,集中式 API 交付团队无法快速响应敏捷团队的反馈。**集中式 API 交付团队内部繁琐的流程,割裂了共享服务与 API 消费者之间的联系,两者的互惠互让本可以进一步推动创新。
*** 最后,该模式下产出的 API 会越来越臃肿。**企业出于实现治理或制定各种规则的需要,考虑更多的是 API 交付的成本、稳定性和可复用性,而不是迭代速度、敏捷性和灵活性。
显而易见,集中式的 API 交付模式 已经难以应对当下瞬息万变的技术、市场以及严格的消费者了。
平台思维因此也有了用武之地。多数情况下,平台是指公司和外部的生态系统。但是,平台这一关键概念也可以应用于公司内部,以创建企业级 API 平台。这类平台将从根本上改变 API 的交付。
| 平台创造了更具价值的生态系统
平台创造的生态系统包含3个参与角色:创建产品的生产者,购买产品的消费者,提供基础设施和安全性保障的平台方。在平台中,生产者和消费者都能更轻松找到对方,并更有效地进行互动和交易。

平台有几个优势:
*** 选择。**通过托管多个生产者,平台让客户可以在不同产品之间进行选择;
*** 竞争。**多个生产者带来竞争,可以产生更好的产品;
*** 网络效应。**良性的循环可以产生网络效应,更多消费者会聚集到有更多生产者的平台,更多的生产者也会聚集到有更多消费者的平台;
*** 安全性。**平台制定规则和进行治理,从而使生产者和消费者可以安全可靠地进行互动和交易。
可以说平台改变了整个行业的商业模式,像优步(Uber)和爱彼迎(AriBnB)就是这种模式的先行者,也因此占据了不同领域的更多市场份额。
| 企业 API 平台改变了 API 交付的模式
了解了平台的优势后,让我们回到企业 API 平台。

| 结语
企业 API 平台的真正优势,在于它为企业提供了推动当今市场所需的创新、速度和敏捷性的自由环境。企业 API 平台让 API 交付不再被垄断,任何企业都能根据自己的项目、业务来获取合适的 API。集中式 API 交付模式的时代已经过去了,企业级 API 平台会是一个更加优秀的提效方案。
图中所使用的的接口管理工具是eolink,感兴趣可以自行使用:www.eolink.com
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
我正在使用Mandrill的RubyAPIGem并使用以下简单的测试模板:testastic按照Heroku指南中的示例,我有以下Ruby代码:require'mandrill'm=Mandrill::API.newrendered=m.templates.render'test-template',[{:header=>'someheadertext',:main_section=>'Themaincontentblock',:footer=>'asdf'}]mail(:to=>"JaysonLane",:subject=>"TestEmail")do|format|format.h
我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path
Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我的公司有一个巨大的数据库,该数据库接收来自多个来源的(许多)事件,用于监控和报告目的。到目前为止,数据中的每个新仪表板或图形都是一个新的Rails应用程序,在巨大的数据库中有额外的表,并且可以完全访问数据库内容。最近,有一个想法让外部(不是我们公司,而是姊妹公司)客户访问我们的数据,并且决定我们应该公开一个只读的RESTfulAPI来查询我们的数据。我的观点是-我们是否也应该为我们的自己
我读了"BingSearchAPI-QuickStart"但我不知道如何在Ruby中发出这个http请求(Weary)如何在Ruby中翻译“Stream_context_create()”?这是什么意思?"BingSearchAPI-QuickStart"我想使用RubySDK,但我发现那些已被弃用前(Rbing)https://github.com/mikedemers/rbing您知道Bing搜索API的最新包装器(仅限Web的结果)吗? 最佳答案 好吧,经过一个小时的挫折,我想出了一个办法来做到这一点。这段代码很糟糕,因为它是
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:AmazonAPIlibraryforPython?我正在寻找一个AmazonAPI,它可以让我:按书名或作者查找书籍显示书籍封面获取有关每本书的信息(价格、评级、评论数、格式、页数等)Python或Ruby库都可以(我只想要最容易使用的库)。有什么建议么?我知道在SO上还有其他一些关于此的帖子,但这些API似乎很快就过时了。[几个月前我尝试了几个建议的Ruby库,但无法让它们中的任何一个工作。]
很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个