Как с помощью REST API и Batch вытаскивать свыше 250 записей?

Как с помощью REST API и Batch вытаскивать свыше 250 записей?

У меня есть коллаут и батч, который его вызывает (сам батч, скорее всего, кривой: я так и не смогла до конца в них разобраться). Коллаут обращается к REST API GET, но даже если на стороне сервисной части у меня более 250 записей, оно все равно вернет ровно 250. Это ограничение батча, насколько я понимаю? Можно ли организовать эту передачу по частям? К примеру, в несколько заходов по 250 записей, пока записи не закончатся (принцип пагинации). И если да, то как это сделать? Где-то читала, что посредством встроенного REST API записи можно десятками тысяч тянуть, но не пойму, как это сделать, если мы работаем только со стороной запроса. Помогите, пожалуйста. Заранее спасибо за ответы.

Коллаут:

public class Callout {

public static List<Instrument__c> instrumentsList;

public static HttpRequest createRequestForService(String token){
HttpRequest finalRequest = new HttpRequest();
finalRequest.setHeader('Authorization','Bearer ' + token);
finalRequest.setHeader('Content-Type','application/json');
finalRequest.setHeader('accept','application/json');
finalRequest.setMethod('GET');
finalRequest.setEndpoint('https://name.salesforce.com/services/data/v44.0/query/?q=SELECT+Name+FROM+InstrumentFromService__c');
return finalRequest;
}

public class WrapperClass {
public Integer totalSize;
public Boolean done;
public String nextRecordsUrl;
public Instrument__c[] records;
}

public class WebToken{
public String WEBTOK{get;set;}
}

public static void getResult() {
Http ourHttp = new Http();
HttpRequest requestForToken = 'get_right_token_is_here';
HttpResponse responseToken = ourHttp.send(requestForToken);
OAuth2 objAuthenticationInfo = (WebToken)JSON.deserialize(responseToken.getbody(), WebToken.class);

if(objAuthenticationInfo.WEBTOK != null) {
HttpRequest requestForService = createRequestForService(objAuthenticationInfo.WEBTOK);
HttpResponse responseService = ourHttp.send(requestForService);
instrumentsList = ((WrapperClass)JSON.deserialize(responseService.getBody(), WrapperClass.class)).records;
for(Instrument__c ins : instrumentsList) {
ins.Id = null;
}
return responseService;
}
else return null;
}
}


Батч:
global class BatchClass implements Database.Batchable<Integer>, Database.AllowsCallouts {


global Integer operationsQuantity = 1;
global Iterable<Integer> start(Database.BatchableContext BC){
List<Integer> scope = new List<Integer>();
for(Integer i = 1; i <= operationsQuantity; i++){
scope.add(i);
}
return scope;
}

global void execute(Database.BatchableContext BC, List<Integer> scope){
List<Instrument__c> mainList = new List<Instrument__c>();
for(Integer i : scope){
HttpResponse res = CalloutResume.getCalloutResponseContents();
List<Instrument__c> instrumentsList = Callout.instrumentsList;
mainList.addAll(instrumentsList);
}
upsert mainList Name;
}

global void finish(Database.BatchableContext BC){
}
}

Извините, но пока код выглядит как полный бред.
Давайте начнем с начала. Какая изначальная задумка? Что должно происходить простыми словами, не опираясь пока на какие-либо варианты реализации.

Интересная информация? Помогите сайту, разместите ссылку в социальных сетях..