如何在 Angular 项目中使用 HttpHeaders Link 进行分页?

vio*_*ola 3 rest github angular

来自 api.github 的响应有一个带有 Link 的响应标头。

我应该如何使用它?它返回一个像这样的字符串

<https://api.github.com/user/repos?per_page=10&page=2>; rel="next", <https://api.github.com/user/repos?per_page=10&page=4>; rel="last"

需要我自己解析吗?

HttpHeaders.Link

hay*_*den 5

需要你自己去解析。以下是如何使用splitreduce和正则表达式执行此操作。

let linkHeaders = '<https://api.github.com/user/repos?per_page=10&page=2>; rel="next", <https://api.github.com/user/repos?per_page=10&page=4>; rel="last"'

let parts = linkHeaders.split(',').reduce((acc, link) => {
   let match = link.match(/<(.*)>; rel="(\w*)"/)
   let url = match[1]
   let rel = match[2]
   acc[rel] = url
   return acc;
}, {})

console.log(parts)
Run Code Online (Sandbox Code Playgroud)