如何对来自两个分页来源的条目进行分页

时间:2019-02-07 14:27:43

标签: api flickr

当前,我有两个函数,每个函数都从其自己的3维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
    // ??? 
}

通过联合,我暗示是OR运算符。

现在我看到了这样的解决方案:每次都从第一和第二端点获取所有项,删除重复的条目,然后对结果进行分页。但这很浪费时间和内存。

0 个答案:

没有答案