当前,我有两个函数,每个函数都从其自己的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运算符。
现在我看到了这样的解决方案:每次都从第一和第二端点获取所有项,删除重复的条目,然后对结果进行分页。但这很浪费时间和内存。