Как разбить записи на страницы из двух разбитых на страницы источников - PullRequest
0 голосов
/ 07 февраля 2019

В настоящее время у меня есть две функции, каждая из которых извлекает постраничные записи из своей собственной конечной точки RESTful API стороннего производителя.Некоторые полученные предметы могут повторяться с этих двух конечных точек.Как сделать мою собственную функцию, которая разбивает на страницы объединение результатов, возвращаемых этими функциями, без повторяющихся записей?Невозможно сделать это в одном запросе API, такой фильтр не отображается.

В моем случае я хочу получить фотографии с Flickr по тегам, либо с определенной фотографиизадавать.Итак, у меня есть две функции (TypeScript):

interface PaginationParams {
    page:     number;    // better be offset, but FlickrAPI is page-based
    per_page: number;
}
interface RetVal {
    total:  number;
    photos: FlickrPhoto[];
}
interface FlickrPhoto { /* ... */ }
function fetchPhotosFromPhotoset(params: PaginationParams): Promise<Retval>;
function fetchPhotosByTag(params: PaginationParams): Promise<Retval>;

function fetchPhotosFromPhotosetAndByTag(params: PaginationParams): Promise<Retval> {
    // this function has to paginate results from fetchPhotosFromPhotoset() and
    // from fetchPhotosByTage() united without repeated entries
    // ??? 
}

Под объединением я подразумеваю оператор ИЛИ.

Пока я вижу такое решение : получить все элементы сначалаи второй конечной точки каждый раз, удаляйте повторяющиеся записи, а затем разбивайте результат на страницы.Но это занимает много времени и памяти.

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