想象一下,你成功开发并部署了一个服务,可以搜集你所在城市所有超市的打折和优惠信息。
现在,有开发者想使用你的服务,需要你提供对应的 API,他们将付费获取你的授权服务,然后通过你开发的 API 得到打折与优惠信息。
像这样通过 API 的方式将数据的使用转化为金钱的模式,就叫做 API 货币化。API 货币化是使 API 网络服务获得盈利的理想方式。
在决定采用 API 货币化的商业模式后,第一步是要考虑的就是如何计费。通常有两种计费方式:
不管采用哪一种方式,都需要统计不同身份用户调用 API 的数量,对超出少数的用户要进行限流和限速操作。所以,计费的关键点在于能否识别出用户的身份。
大部分购买服务的用户属于企业员工。该群体登录企业账号后,理应能够共享同一个计费账号,所以能否识别出用户所属组织也同样重要。
现实生活中 API 货币化的应用无处不在,例如最常见的验证码功能、云厂商提供的消息队列与文字识别服务、安全厂家提供的 WAF (Web 应用防火墙)与内容过滤等服务。这些服务模式的市场需求量十分庞大,以至于我们迫切地需要一个合适的技术栈来为 API 货币化打下坚实的基础,也就是说我们应该对 API 进行精细化管理。
在管理 API 时,我们应该控制不同身份的用户在不同场景下的发布权限,并且要确保发布这些 API 符合组织标准,诸如 URL 模式、命名约定、访问控制规则等。不同职能的部门对 API 的管理手段也不完全一样,通常包括对已发布的 API 进行更新或设计改进;执行流量控制、速率限制和安全策略等;实时观测 API 使用情况、性能及其他指标。
用来管理并解决使用 API 过程中的很多问题的工具,就叫做 API 网关。作为中央代理,API 网关将所有从客户端传入的请求路由到预定的目的地(后端服务),使 API 更安全、更易于管理。API 网关通常支持各种授权和认证协议,能够对 API 进行复杂的权限控制,还有速率限制等诸多功能。
目前市面上有许多流行的 API 网关开源项目,其中较引人注目、且大范围的应用的就是 Apache APISIX(云原生微服务网关)和其替代的企业 SaaS 解决方案 API7 Cloud 。()
Apache APISIX 不仅支持上述的各种功能,通过其丰富的插件,还支持与 Prometheus、OpenTelemetry、Apache Skywalking 等多种可观察性平台做集成,以逐渐增强其分析 API 的能力并获得完整的可视性。
针对上文提到的识别用户身份,Apache APISIX 提出了 Consumer(消费者)的概念。
不同 Consumer 对应不同的用户,通过在 Consumer 上绑定对应的插件和上游,不同的 Consumer 请求同一个 API。经用户认证体系识别后,网关服务根据当前请求用户的信息,自动匹配不同的 Plugin 或 Upstream 配置,此举为差异化用户管理提供了极大的便利。
针对前文提到的同一企业多个不同职能的用户,仅支持 Consumer 还不足以满足需求。当多个 Consumer 共享同一个消费额度,若只管理每个 Consumer 的配置,操作就会过于繁琐。因此 APISIX 提出了 Consumer Group 的概念,有了 Consumer Group,多个 Consumer 就能共享同一套配置和同一个消费配额。
以上是 Apache APISIX 在 API 货币化上的实践思路,下面我们来看看具体的应用与配置。
不论是企业还是个人,想要通过 API 将数据与服务转化为收入,实现货币化,都需要引入专业的管理工具 —— API 网关。Apache APISIX 作为当下最热门的 API 网关之一,在货币化的道路上已经有数百家企业的丰富实践,提出的 “Consumer、Consumer Group” 等概念,极大地方便了用户对 API 的管理,赋能企业 API 货币化顺畅落地。