【发布时间】:2020-06-30 06:43:39
【问题描述】:
我正在使用带有 asp.net core 3.1 Table API 的 Azure Cosmos DB 和 Azure Storage Table。对于这两者,我们可以使用 Continuation 令牌进行分页并以可管理的块返回大数据。
我也有 Web API,它有一个 List API,它以块的形式返回对象,API 要求用户/开发人员指定限制(对象的数量例如 100),如果数据库包含的内容超过指定的限制,则需要返回继续令牌以查询下一组对象。
现在,由于 TableContinuationToken 是一个类,我获取 Table API 返回的令牌并将其序列化,将其编码为 Unicode 字节并将其返回给用户。这有助于我的 API 将延续令牌作为简单的编码字符串返回,用户可以轻松地将其传递给下一组数据。
这会以简单的字符串格式返回令牌(例如eyJOZXh0UGFydGl0aW9uS2V5IjoiMSEyOCFTMlJpTTJWSk1HODRNRzFzTlRGMk9HaGFiak5CIiwiTmV4dFJvd0tleSI6IjEhMjAhZFc1cGRIUmxjM1J3Y205cVpXTjAiLCJOZXh0VGFibGVOYW1lIjpudWxsLCJUYXJnZXRMb2NhdGlvbiI6MH0)
它对我来说效果很好,但在我使用这种方法进行生产之前,我想检查这是否是使用 TableContinuationToken 的正确方法,是否有任何其他内置方法可以将延续令牌作为简单字符串获取?
在生成的延续令牌失效前是否有时间限制?
【问题讨论】:
-
你打算如何反序列化它?您是否测试过反序列化是否有效?
-
是... asp.net core 3.0 有一个内置的 json 序列化器... 反序列化工作 TableContinuationToken tableContinuationToken = System.Text.Json.JsonSerializer.Deserialize
(Base64UrlEncoder.Decode(continuationToken) );
标签: c# asp.net-core azure-cosmosdb asp.net-core-webapi azure-table-storage