【发布时间】:2019-02-17 07:27:21
【问题描述】:
我已经阅读了很多关于它的主题,但仍然没有找到更好的方法。
我有一个User。一个User 可能有多个Posts。用户和帖子是不同的微服务。我正在使用 Spring Boot。
当前端调用我的Posts 微服务向/posts/user/1 发送POST 请求时,我需要检查给定的userId (1) 是否存在于我的Users 数据库中。如果否,则抛出异常,告诉前端用户不存在。如果是,则将给定的请求正文插入为Post。
问题是:我应该如何在我的后端检查这些信息?我们不想让前端承担这个责任,因为 javascript 是客户端,恶意用户可以绕过这个检查。
选项:
- 微服务之间的 REST 通信。 (发微服务调用用户微服务询问给定的id是否在他身边)
- 授予 Posts 微服务访问用户微服务数据库的权限
我知道他们之间的通信会产生耦合,但我不确定授予 Posts 访问用户数据库是否是最佳选择。
欢迎提出任何建议。
【问题讨论】:
-
数据至关重要,必须加以保护。因此,在我看来,拥有位于后端顶部的服务(在您的情况下为数据库)并通过使用适当的身份验证和访问控制公开公共端点是很好的
标签: java rest spring-boot architecture microservices