将 Continuation 令牌与 Asp.net 核心 Web API 一起使用的正确方法是什么

What is the correct way to use Continuation token with Asp.net core Web API

我正在使用 Azure Cosmos DB 和 Azure 存储 Table 以及 asp.net 核心 3.1 Table API。对于两者,我们都可以使用 Continuation 标记进行分页和 return 可管理块中的大数据。

ContinationToken 具有以下格式:

我还有 Web API,它有一个 List API return s 块中的对象,API 要求 user/developer 指定限制(对象数量,例如 100),如果数据库包含的对象超过指定的限制,则需要 return 继续查询下一组对象的标记。

现在,由于 TableContinuationToken 是一个 class,我将 return 由 Table API 编辑的令牌序列化,编码在 Unicode 字节和 return 它给用户。这有助于我的 API return 继续令牌作为一个简单的编码字符串,用户可以轻松地为下一组数据传递它。

这 return 是简单字符串格式的令牌(例如 eyJOZXh0UGFydGl0aW9uS2V5IjoiMSEyOCFTMlJpTTJWSk1HODRNRzFzTlRGMk9HaGFiak5CIiwiTmV4dFJvd0tleSI6IjEhMjAhZFc1cGRIUmxjM1J3Y205cVpXTjAiLCJOZXh0VGFibGVOYW1lIjpudWxsLCJUYXJnZXRMb2NhdGlvbiI6MH0

它对我来说效果很好,但在我使用这种方法进行生产之前,我想检查一下这是否是使用 TableContinuationToken 的正确方法,是否有任何其他内置方法可以获取作为简单字符串的延续标记 ?

生成的继续令牌失效之前是否有时间限制?

It works well for me, but before I go production with this approach I want to check if this is the the correct way of using the TableContinuationToken and is there is any other built in way to get the continuation token as a simple string ?

只要您可以反序列化字符串以取回延续令牌,我认为您的方法没有任何问题。

And is there any time limit before the generated continuation token becomes invalid ?

不,没有时间限制。延续令牌基于为特定查询获取的数据,您可以使用此令牌获取下一组数据。但是,您应该保持此令牌值不透明,因为您不应尝试推断令牌值并在其上构建任何业务逻辑。