如何只使用一个HTTP请求从事件存储流中获取最后一个事件?

时间:2017-11-13 22:10:52

标签: http stream event-stream get-event-store

我能找到的所有docs似乎都暗示我需要两个http请求来执行此操作:一个到流,给我一个指向最后一个事件的链接,然后一个跟随该链接。

这看起来很奇怪,是不是只用一个请求就可以做到这一点?

2 个答案:

答案 0 :(得分:3)

关键字是' head',就像git一样。所以最后一个事件发生在[url of the stream]/head

答案 1 :(得分:2)

如果使用.NET客户端,您还可以使用向后读取API

Task<StreamEventsSlice> ReadStreamEventsBackwardAsync(string stream, int start, int count, bool resolveLinkTos)

哪里

  • 开始-通常,如果您知道从哪个事件号开始,但是在这种情况下我们不知道,因此我们可以StreamPosition.End(-1)从结尾开始。
  • 计数-要倒退的事件数

因此,此代码将为您提供流中的最后一个事件(如果有投影,则启用linkTos)

 StreamEventsSlice slice = await Connection.ReadStreamEventsBackwardAsync("StreamName", StreamPosition.End, 1, true, creds);