>

github API는 json 결과에 대한 페이지 매김 데이터를 http 링크 헤더로 보냅니다 :

Link: <https://api.github.com/repos?page=3&per_page=100>; rel="next",
<https://api.github.com/repos?page=50&per_page=100>; rel="last"

github API 가이 방법을 사용하는 유일한 API가 아니기 때문에 (생각합니다) 누군가가 링크 헤더를 구문 분석하고 (예 : 배열로 변환) 유용한 작은 조각을 가지고 있는지 묻고 싶었습니다. 내 js 앱용입니다.

내가 검색했지만 json API에서 페이지 매김을 구문 분석하는 방법과 관련하여 유용한 정보를 찾지 못했습니다

  • 답변 # 1

    GitHub Java API에는 Link 구문 분석 방법을 보여주는 PageLinks 클래스가 있습니다.  헤더.

  • 답변 # 2

    구문 분석 헤더 NPM 모듈은이 목적을 위해 존재합니다. 소스는 MIT 라이센스 (상업용으로 무료)로 github에서 찾을 수 있습니다.

    설치는 다음과 같이 간단합니다 :

    npm install parse-link-header
    
    

    사용법은 다음과 같습니다 :

    var parse = require('parse-link-header');
    var parsed = parse('<https://api.github.com/repos?page=3&per_page=100>; rel="next", <https://api.github.com/repos?page=50&per_page=100>; rel="last"')
    
    

    ... 그 후 parsed.nextparsed.last 등 :

    { next:
       { page: '3',
         per_page: '100',
         rel: 'next',
         url: 'https://api.github.com/repos?page=3&per_page=100' },
      last:
       { page: '50',
         per_page: '100',
         rel: 'last',
         url: ' https://api.github.com/repos?page=50&per_page=100' } }
    
    

  • 답변 # 3

    github에서 wombleton/link-headers를 찾았습니다. npm 모듈이 아닌 브라우저 용으로 만들어진 것처럼 보이지만 서버 측 환경에서 작동하도록 수정하기는 어렵지 않습니다. pegjs를 사용하여 문자열 분할이 아닌 실제 RFC 5988 파서를 생성하므로 Github가 아닌 모든 링크 헤더에서 잘 작동합니다.

  • 답변 # 4

    이 요점을 발견했습니다.

    와이즈 비즈 와이즈 비즈  JavaScript의 헤더

    Github API에서 테스트했으며 다음과 같은 객체를 반환합니다 :

    Parse Github

  • 답변 # 5

    Python을 사용할 수 있고 전체 사양을 구현하고 싶지 않지만 Github API에 적합한 것을 원한다면 여기로 가십시오 :

    Links
    
    
    var results = { last: "https://api.github.com/repositories/123456/issues?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&state=open&since=2013-07-24T02%3A12%3A30.309Z&direction=asc&page=4" next: "https://api.github.com/repositories/123456/issues?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&state=open&since=2013-07-24T02%3A12%3A30.309Z&direction=asc&page=2" };

  • 이전 android - Firestore orderBy 보안 규칙
  • 다음 java - GridView를 올바르게 설정하는 방법?