Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpApPag 477 of 509 menu
◀ ▶

Пагинация API в C#

Параметры "_page" и "_limit" в query-строке ограничивают срез массива на сервере. Первая страница с "_limit=3" на typicode posts обычно содержит ровно три объекта - это видно по длине массива после разбора JSON.

Сначала скачиваем тело, затем считаем элементы корневого массива. Ожидаемое значение GetArrayLength - 3 (если сервис доступен и контракт не изменился):

using System.Net.Http; using System.Text.Json; using HttpClient client = new(); string page1 = await client.GetStringAsync("https://jsonplaceholder.typicode.com/posts?_page=1&_limit=3"); using JsonDocument doc = JsonDocument.Parse(page1); Console.WriteLine(doc.RootElement.GetArrayLength());

Вторая страница с тем же "_limit" начинается с другого поста. У первой записи читают id. Если "_page" больше, чем есть данных, массив может оказаться пустым:

using System.Net.Http; using System.Text.Json; using HttpClient client = new(); string page2 = await client.GetStringAsync("https://jsonplaceholder.typicode.com/posts?_page=2&_limit=3"); using JsonDocument doc = JsonDocument.Parse(page2); Console.WriteLine(doc.RootElement[0].GetProperty("id").GetInt32());

Запросите "comments?_page=2&_limit=4" на typicode. Выведите в консоль длину массива и id первой записи.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить