Skip to content

Instantly share code, notes, and snippets.

@danryan
Created August 28, 2014 18:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danryan/99a6d10f53d839d5f9e5 to your computer and use it in GitHub Desktop.
Save danryan/99a6d10f53d839d5f9e5 to your computer and use it in GitHub Desktop.
rels := make(map[string]string)
link := header.Get("Link")
if len(link) == 0 {
return rels
}
for _, l := range strings.Split(link, ",") {
l = strings.TrimSpace(l)
segments := strings.Split(l, ";")
if len(segments) < 2 {
continue
}
if !strings.HasPrefix(segments[0], "<") || !strings.HasSuffix(segments[0], ">") {
continue
}
url, err := url.Parse(segments[0][1 : len(segments[0])-1])
if err != nil {
continue
}
for _, segment := range segments[1:] {
switch strings.TrimSpace(segment) {
case `rel="next"`:
rels["next"] = link
case `rel="prev"`:
rels["prev"] = link
case `rel="first"`:
rels["first"] = link
case `rel="last"`:
rels["last"] = link
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment