首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microservices模式

Microservices模式
EN

Stack Overflow用户
提问于 2020-10-13 09:05:14
回答 1查看 605关注 0票数 1

我想知道设计API调用微服务URL的标准方法。我有两个微服务的例子-用户,订单。所创建的API将在我的应用程序UI中使用,并用于任何第三方集成。我应该遵循哪种Url模式:

METHOD1:隐藏内部微服务实现

创建用户的

POST: /user (呼叫用户服务)

获得用户的

GET: / User /{userId} (呼叫用户服务)

  • 为用户创建订单

POST: / user /{userId}/order (调用到订单服务和订单服务,内部使用用户服务验证用户)

  • 通过id获取用户订单

GET: / user /{userId}/ Order /{orderId} (调用到orderId和orderId内部验证用户服务)

METHOD2:每个API都有它属于哪个微服务的详细信息。

创建用户的

帖子: /userService/user (呼叫用户服务)

获得用户的

GET: /userService/ User /{userId} (呼叫用户服务)

  • 为用户创建订单

POST: /orderService/order (调用到带有userId的订单服务,请求主体和订单服务内部使用用户服务验证用户)

  • 通过id获取用户订单

GET: /orderService/ Order /{orderId} (调用请求主体中的userId命令服务,并在内部使用用户服务验证用户)

哪一种是好方法,也让我知道是否可以用其他任何不同的方式来做呢?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-10-14 04:39:19

Method1。从外部来看,客户不应该能够看到微服务架构和单点服务之间的区别。

出于安全原因,您不希望将后端的详细信息透露给外部。

但是话虽如此,如果您正确地设计了您的微服务,那么每个微服务都将处理特定的资源(用户、订单)。因此,看起来每条主要路线的目标都是相应的微服务。

对于完全不同的解决方案,请查看graphql和阿波罗联邦。我使用它将我所有的微服务API封装到一个干净的端点上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64332059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档