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

时间:2018-01-05 07:38:54

标签: angular rest github

来自api.github的响应有一个带链接的响应标题。

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

<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"

需要myselef解析吗?

SQL Fiddle demo

1 个答案:

答案 0 :(得分:1)

您需要自己解析它。以下是使用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)