更新时将数据发送到另一台服务器

时间:2016-09-13 06:32:50

标签: java rest server

我正在编写一个服务,用于存储与注册电子邮件相关的图片。因此,其他域将有可能通过电子邮件获取用户的图像。主要目标不是每次上传它,因为现在我们几乎到处都要注册,这个过程非常烦人。 我的应用程序是用 Java 编写的,我使用的是 REST API 。 例如,登录时可以获得用户的帐户信息:

    @RequestMapping(value = "/get/{login}",
        method = RequestMethod.GET,
        produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<User> getByEmail(@PathVariable String login) {
    User user = userDao.getUserByLogin(login);
    return Optional.ofNullable(user)
            .map(result -> new ResponseEntity<>(
                    result, HttpStatus.OK))
            .orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND));
}

现在,我想要的只是将更新的数据发送到将使用我的服务的域。我怎么能弄明白呢?我想我可以问&#34;域名&#34;提供一些信息以便使用我的服务(一些注册之王),但我究竟应该要求什么才能发送数据udpdates? 在我的想法中,他们还应该提供一些REST路径,我可以在那里发送某些已经发生变化的请求。

非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

这实际上是一个pub-sub模型。您可以向已订阅它的人发布有关各种已定义事件的一些信息。将此视为跨各个端点的用户信息的状态同步的子集。

在您的情况下,您所指的“域名”将是您服务的订阅者,事件可能是“itemAdded”,“itemAdded”等。您可能希望“推出”更新(或整个信息)当订阅者发生他们订阅的事件时,而不是他们试图以某种频率拉动它(这会对您的服务器造成大量浪费 - 您不希望这样!)

有各种解决方案可以实现这一目标。我要指出的那个叫做Twilio Sync。这显然意味着“域名”必须在其末尾进行一些更改以订阅和使用更新,但我不知道如果他们想要推送信息,他们如何定期更新。

答案 1 :(得分:0)

  • 从域中将最后更新日期发送到端点 用它。然后检查在该日期之后更新了哪些数据并返回 适当的回应。
  • 谈论图片,您可以随时返回下载URL,但添加上次更新字段。使用REST服务的服务将决定是否下载。

此外,您可能需要事件驱动的消息传递,发布 - 订阅模式(https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern)。相关主题: