157
11
管理应用的生态系统
有一些开发者在他们的应用中使用你的
API
之后,你会发现围绕你的产品形成了一个交
互双方的社区。社区中的应用和开发者可能对你的产品有各种各样的关注点,并且建立
一系列关系,这是你需要直接或间接管理的。本章将分析这些关系,探索如何让你的直
接和间接客户在最大程度上对你的产品满意。我们将重点说明如何通过数据管理你与社
区中的客户和开发者之间的关系。
API
管理
你的
API
和使用它的应用,不管数量是多是少,都会由交互双方形成一个社区。这个社
区通常比喻成生态系统。
在生态学中,生态系统指由相互影响的有机体和它们所处的自然环境组成的生物群落。
如果把这个概念借鉴到由开发者、应用和
API
组成的系统,可以看到与自然界相似的元
素。在应用的生态系统中,组成系统的各方之间基于不同的目的形成不同的关系:各方
之间交换数据流,相互通信,或者与各方之外的世界通信。这一概念如图
11-1
所示。
管理复杂的应用生态系统之前,你肯定已经构建了成功的
API
,其他开发者已经开始在
他们的项目集成。所以,首先恭喜你达成了这一成就。
恭喜自己,或者你的团队或组织之后,可以开始分析错综复杂的关系网了。这个关系网
由使用你的服务的开发者组成,因此你要负责管理。
158
11
移动应用
Web 应用
云服务
物联网
API 产品
11-1
一个生态系统
由一个 API 管养多个不同的应用和服务
下面以我们开发的
Citywalks API
为例。这个
API
使用
WikiCat API
Wikipin API
创建
主题路线。
Citywalks API
有个客户,即在地图上显示路线的
Walks
应用。
围绕
Citywalks API
建立的关系分为三层,其中某个特定的
API
管养另一个服务,而那
个服务管养着其他各方。最终形成的关系组成一个错综复杂的网络。这个网络最终会进
化成由
API
和应用组成的网状结构。在这个网状结构中,不同的
API
管养着不同的应用,
最终,通过采用开放的协议,网络中的各个节点之间共享着数据(见图
11-2
)。
网状网络是一种网络拓扑,网络中的数据在各个节点(网状节点)之间传送。各个
节点相互协作,把数据散布到整个网络中。更多信息参见维基百科中介绍网状网络
的文章(
https://en.wikipedia.org/wiki/Mesh_networking
)。
API
不是消费品
开发
API
时思想要做个转变,要意识到
API
不是(至少还不是)消费品,不过
API
可以
为多个不同的产品提供数据。
虽然很多提供
API
的产品能吸引更多的用户,但是
API
本身并不是消费品。
API
是接口,
供开发者构建应用。
这些产品可能有几百到几百万用户,但是这些不是你的直接客户。说到底
API
的客户
是使用
API
的应用,而这些应用自身也有自己的用户。
管理应用的生态系统
159
客户 客户
客户
客户
客户 客户 客户
订户
订户 订户
订户
订户 订户
订户
订户
11-2
你的 API 可能管养着众多订户
或称开发者
),
而这些订户各自都有一些客户
成功的应用生态系统有一些主要功能,如下:
开发者门户
一般来说,开发者门户是一个
Web
应用,为开发者社区提供不同的工具和服务。这
通常包括
API
文档、社区论坛、密钥配置等常用工具,以及便于集成和支持社区的
建议。
测试和质量保证
对集成的双方来说,都一定要有一个标准的测试和质量保证过程。
API
提供者通过测试过程可以保障所有应用都遵守服务条款和质量标准,防止应用
执行恶意操作。此外,还能先于应用的用户发现问题。我们可以把这个理解为对自
己的
API
和开发者的应用所做的压力、质量和安全测试。
应用管理
应用管理程序提供各种技术和过程,保障部署的应用能提供最优的性能,此外还提
供一些操作指导,例如应用版本和集成的最佳实践。
广告服务
有些业务模式通过广告确保稳定的现金流,另一些则依靠外部的广告网络帮助开发
者推广项目。因此,广告服务对服务提供商和订户都有帮助,能帮助他们有效获得
新用户、提升用量,或者让产品变现。

Get RESTful Rails Development (中文版) now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.