gpt4 book ai didi

java - 跨不同微服务的数据验证

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:56 25 4
gpt4 key购买 nike

我已经阅读了很多关于它的主题,但仍然没有找到更好的方法。

我有一个用户。一个 User 可能有很多 Posts。用户和帖子是不同微服务。我正在使用 Spring Boot。

当前端调用我的 Posts 微服务向 /posts/user/1 发送一个 POST 请求时,我需要检查是否给定的 userId (1) 存在于我的 Users 数据库中。如果不是,则抛出异常告诉前端用户不存在。如果是,则将给定的请求正文作为 Post 插入。

问题是:我应该如何在后端检查这些信息?我们不想让前端承担此责任,因为 javascript 是客户端,恶意用户可以绕过此检查。

选项:

  • 微服务之间的 REST 通信。 (发布微服务调用用户微服务询问给定的 id 是否存在于他这边)
  • 授予 Posts 微服务访问 Users 微服务数据库的权限

我知道它们之间的通信会产生耦合,但我不确定让 Posts 访问用户数据库是否是最佳选择。

请随意提出任何选项。

最佳答案

您可以选择通过 RESTful 方法在 PostUser 微服务之间进行进程间通信。

如果您只想检查资源是否存在而不想要任何主体响应,那么您应该优先使用 HEAD http 方法。因此,托管在 User 微服务中的 API 端点将类似于 -

HEAD  user/{userId}

Post 微服务调用此 API。

Return 200 / OK if user exist

Return 404 / Not Found if user does not exist

Click herehere获取有关 HEAD 方法用法和用例的更多详细信息。

关于java - 跨不同微服务的数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52298830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com