Как правильно использовать токен продолжения с Asp. net core Web API - PullRequest
0 голосов
/ 19 марта 2020

Я использую Azure Cosmos DB и Azure Storage Table с asp. net core 3.1 Table API. Для обоих мы можем использовать токен продолжения для разбиения на страницы и возвращать большие данные в управляемых чанках.

ContinationToken имеет следующий формат: enter image description here

У меня также есть Веб-API , который имеет Список API, который возвращает объекты в блоках, API просит пользователя / разработчика указать ограничение (количество объектов, например, на 100), и если база данных содержит больше что указанное ограничение необходимо вернуть токен продолжения для запроса следующего набора объектов.

enter image description here

Теперь, поскольку TableContinuationToken является классом, я беру токен, возвращаемый API таблицы, и сериализую его, кодирую в байтах Unicode и возвращаю его пользователю. Это помогает моему API возвращать токен продолжения в виде простой закодированной строки, которую пользователь может легко передать для следующего набора данных.

enter image description here

Возвращает токен в простом строковом формате (например, eyJOZXh0UGFydGl0aW9uS2V5IjoiMSEyOCFTMlJpTTJWSk1HODRNRzFzTlRGMk9HaGFiak5CIiwiTmV4dFJvd0tleSI6IjEhMjAhZFc1cGRIUmxjM1J3Y205cVpXTjAiLCJOZXh0VGFibGVOYW1lIjpudWxsLCJUYXJnZXRMb2NhdGlvbiI6MH0)

Это хорошо работает для меня, но прежде чем я go продюсирую с этим подходом, я хочу проверить, является ли это правильным способом использования TableContinuationToken и Есть ли другой способ получить токен продолжения в виде простой строки?

И есть ли ограничение по времени до того, как сгенерированный токен недействителен?

1 Ответ

1 голос
/ 19 марта 2020

Это хорошо работает для меня, но прежде чем я go продюсирую с этим подходом, я хочу проверить, является ли это правильным способом использования TableContinuationToken и есть ли какой-либо другой встроенный способ получить продолжение маркер как простая строка?

Пока вы можете десериализовать строку, чтобы получить токен продолжения, я не вижу проблем с вашим подходом.

И есть ли ограничение по времени до того, как сгенерированный токен продолжения станет недействительным?

Нет, ограничения по времени нет. Токен продолжения основан на данных, выбираемых для определенного запроса, и вы можете использовать этот токен для выборки следующего набора данных. Однако вы должны оставить это значение токена непрозрачным в том смысле, что вам не следует пытаться вывести значение токена и построить на нем какие-либо бизнес-логики c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...