Как использовать фильтр пагинации в вызове getOrders (eBay Trading API)?

Я пишу приложение на C#, которое получает заказы от Ebay.

Проблема в том, что я могу получить только 100 заказов от getOrders.ApiResponse.OrderArray.

У меня около 1000 заказов. Как получить другие 900? Другими словами, как перебирать заказы на ebay, используя вызов HasMoreOrders и Pagination.PageNumber?

2 ответа

В первом вызове GetOrders вы можете найти общее количество элементов и страниц в результате.

Вы должны перебрать каждую страницу и вызывать вызов API GetOrders с другим номером страницы

For(int index=0; index<Orders.Pages; index++)
{
// Build GetOrders Request with PageNumber - index

// Call GetOrders API with page number 

// Manipulate result
}

Сам ответ содержит номер текущей страницы и общее количество страниц. Вам нужно будет сделать новый запрос на странице.

Взгляните на следующий код, который я написал, чтобы получить все результаты с каждой страницы (это с API Finding, но работает так же для всех других API eBay):

var response = GetResults(findingService, request, currentPageNumber);
if (response.ack == AckValue.Success)
{
    var result = response.searchResult;
    if (result != null && result.count > 0)
    {
        // TODO process result

        for (var i = response.paginationOutput.pageNumber; i < response.paginationOutput.totalPages; i++)
        {
            currentPageNumber += 1;

            response = GetResults(findingService, request, currentPageNumber);
            result = response.searchResult;

            // TODO process result
        }
    }
}

private FindCompletedItemsResponse GetResults(CustomFindingService service, FindCompletedItemsRequest request, int currentPageNumber)
{
    request.paginationInput = GetNextPage(currentPageNumber);
    return service.findCompletedItems(request);
}

private PageinationInput GetNextPage(int pageNumber)
{
    return new PaginationInput
    {
        entriesPerPageSpecified = true,
        entriesPerPage = 100,
        pageNumberSpecified = true,
        pageNumber = pageNumber  
    };
}
Другие вопросы по тегам