AWS API Gateway:何时创建另一个API?

时间:2018-03-22 18:23:00

标签: amazon-web-services aws-api-gateway

在熟悉AWS之后,这个概念性问题已经浮现在我脑海中。一般来说,我很好奇是否有最佳实践和/或惯例,以便API提供商何时应将端点分组到一个新的独立API中(而不是将端点集中到现有API中)。

为了说明,我们假设服务代表Manufacturers创建数字钱包优惠券,由ConsumersMom & pop stores批量兑换 - 有些服务可能参与的活动包括:

  • Manufacturers接收数据(以构建数字优惠券)
  • Consumers提供查找和下载优惠券的机制
  • Mom & pop stores’付款终端提供验证优惠券的方法

而且,顺便说一句,服务也可能需要......

因此吗

使用AWS,可以很容易地模块化一个人的后端(例如,拥有数据库的RDS实例,为微服务运行一些lambda函数等)并对其进行负载均衡。 API Gateway增加了这一点,因为每个端点都可以指向不同的东西(lambda函数,通过HTTP代理的EC2实例等)。

因此,一种方法可能是在AWS API Gateway中定义 一个 API,并在其下面包含所有端点:

API: “Master”
  /coupon
    POST = create a new one (for Manufacturers)
    PUT = update an existing one (for Manufacturers)
    GET = retrieve one (for Consumers)

  /coupon/validate
    POST = verify it’s still valid (Mom & Pop store use-case)

  /apple-wallet
     /{version}
         /passes
             ... per documentation
         /devices
             ... per documentation

服务更有意义的是削减/apple-wallet端点并创建一个全新的独立API吗?

或者,如果服务要发布供公共开发人员使用的文档,将Manufacturer - 相关端点完全转移到单独的API中是否有意义?

由于AWS通过API网关将分发端点的工作变得如此简单,是否应该(或不应该)何时采用标准做法?

感谢您的任何见解/意见!

1 个答案:

答案 0 :(得分:3)

我的两分钱。 考虑您的API的最终用户。每个API集都有不同的开发人员最终用户

您理想的情况是每位开发者最终用户只能看到与他们相关的API 。因此,您应该根据最终用户将API分成不同的网关

在理论情境中,您描述:

  • 为制造商创建 API,以便他们可以与您集成以创建优惠券。如果您在内部进行集成,则将是与制造商交谈的公司销售和售前人员
  • 服务和最终用户优惠券的用户可能最终成为 相同的应用程序开发人员为商店和商店创建一个界面 用户。因此,为他们创建优惠券API

将两者分开也应该为您带来安全方面的好处,因为您可以保护您的制造商API的知识免受可能试图破解它的用户的影响