Вы не должны обращаться к этой форме через параметры URL, она имеет ограничение: 2000 символов Ограничение URL-адреса
Я предполагаю, что вы делаете что-то вроде этого:
https://localhost/api/applicationcollections/(47495dde-67d2-4854-add0-7e25b2fe88e4,1b470799-cc8a-4284-9ca7-76dc34a5aebb)
Если вы планируете получить более 10 тыс. Записей, вы можете передать информацию в теле запроса, которая не имеет ограничений.Говоря технически, вы должны сделать это через запрос POST, но это не относится к семантике глагола POST.Даже для GET вы можете включить тело: HTTP GET с телом запроса , но оно не должно рассматриваться как часть семантики.
Обычно вы не фильтруете 10k элементов по идентификатору, вместо этогопо запросу вы получаете 10 тыс. элементов, передавая параметр разбиения на страницы, если хотите через URL, но это может убить ваше приложение, особенно если учесть, что DTO имеет более одного поля, например
ApplicationDto
field1
field2....
field15
Bellow,у вас есть пример того, как передать параметры разбиения на страницы и получить первые 10 тыс. записей
https://localhost:44390/api/applications?pageNumber=1&pageSize=10000
Кроме того, API должны возвращать дополнительный заголовок, назовем его X-Pagination
, где вы можете получить информацию, если у вас естьбольше страниц для разбивки на страницы, включая общее количество элементов.
В качестве дополнительной меры по уменьшению размера запроса вы можете формировать данные и получать только те поля, которые вам нужны.Приложение должно содержать только: field1, field3, см. Ниже:
https://localhost:44390/api/applications?fields=field1,field3
Посмотрите, как Twitter также решает эту проблему: Ответ курсора Twitter
Надеюсь, это поможет