这个概念性的问题在我熟悉AWS之后悄悄地出现在我的脑海中。一般来说,我很好奇是否有最佳实践和/或约定,说明API提供者何时应该将端点分组到一个新的单独的API中(而不是将端点合并到现有的API中)。
为了举例说明,假设服务代表Manufacturers创建了数字钱包优惠券,由Consumers在一堆Mom & pop stores上赎回-- Service可能从事的一些活动包括:
Manufacturers接收数据(以建立数字优惠券)Consumers提供查找和下载优惠券的机制Mom & pop stores’支付终端验证优惠券提供了一种方法顺便说一句,服务也可能需要.
So?
使用AWS,很容易模块化一个人的后端(例如,为数据库拥有一个RDS实例,运行一些用于微服务的lambda函数等等)。所有的负载平衡。API增加了这一点,因为每个端点都可以指向不同的东西(lambda函数、通过HTTP的EC2实例等等)。
因此,一种方法可能是在AWS中定义 one 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-relevant端点完全移动到单独的API中是否有意义?
由于AWS通过API网关将端点分割得如此简单,那么在什么时候应该(或不应该)有任何标准实践吗?
谢谢你的见解/意见!
发布于 2018-03-22 18:39:41
我的两分钱。为您的API考虑最终用户。对于每个API集,您将有不同的开发人员最终用户。
您理想的情况是让每个开发人员最终用户只看到与他们相关的API,。因此,您应该根据最终用户将APIs划分为不同的网关。
在你所描述的理论情况中:
将两者分开也会给您带来安全好处,因为您将保护您的制造商API的知识,使其不受试图攻击它的用户的影响。
https://stackoverflow.com/questions/49435903
复制相似问题