我想知道设计API调用微服务URL的标准方法。我有两个微服务的例子-用户,订单。所创建的API将在我的应用程序UI中使用,并用于任何第三方集成。我应该遵循哪种Url模式:
METHOD1:隐藏内部微服务实现
创建用户的
POST: /user (呼叫用户服务)
获得用户的
GET: / User /{userId} (呼叫用户服务)
POST: / user /{userId}/order (调用到订单服务和订单服务,内部使用用户服务验证用户)
GET: / user /{userId}/ Order /{orderId} (调用到orderId和orderId内部验证用户服务)
METHOD2:每个API都有它属于哪个微服务的详细信息。
创建用户的
帖子: /userService/user (呼叫用户服务)
获得用户的
GET: /userService/ User /{userId} (呼叫用户服务)
POST: /orderService/order (调用到带有userId的订单服务,请求主体和订单服务内部使用用户服务验证用户)
GET: /orderService/ Order /{orderId} (调用请求主体中的userId命令服务,并在内部使用用户服务验证用户)
哪一种是好方法,也让我知道是否可以用其他任何不同的方式来做呢?提前谢谢。
发布于 2020-10-14 04:39:19
Method1。从外部来看,客户不应该能够看到微服务架构和单点服务之间的区别。
出于安全原因,您不希望将后端的详细信息透露给外部。
但是话虽如此,如果您正确地设计了您的微服务,那么每个微服务都将处理特定的资源(用户、订单)。因此,看起来每条主要路线的目标都是相应的微服务。
对于完全不同的解决方案,请查看graphql和阿波罗联邦。我使用它将我所有的微服务API封装到一个干净的端点上。
https://stackoverflow.com/questions/64332059
复制相似问题