В настоящее время у меня есть две функции, каждая из которых извлекает постраничные записи из своей собственной конечной точки 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
// ???
}
Под объединением я подразумеваю оператор ИЛИ.
Пока я вижу такое решение : получить все элементы сначалаи второй конечной точки каждый раз, удаляйте повторяющиеся записи, а затем разбивайте результат на страницы.Но это занимает много времени и памяти.