Notice
Recent Posts
Recent Comments
관리 메뉴

즐겁게, 코드

github api 요청 한도 늘리기 본문

😾 Git & Github

github api 요청 한도 늘리기

Chamming2 2021. 2. 26. 16:24
{
    "message": "API rate limit exceeded for 110.14.126.182. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)",
    "documentation_url": "https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"
}

깃허브 클론 프로젝트를 진행하던 중, 깃허브 api는 시간당 60회 호출 제한이 걸려있어 프로젝트 진행에 어려움을 겪고 있었습니다.

컴포넌트가 재렌더링될때마다 함수에서 데이터를 요청하기 때문에 불과 몇 분도 되지 않아 호출 한도를 모두 소모하기 때문이었는데요,

오늘은 깃허브 api의 호출 한도 제한을 증가시키는 법을 소개하고자 합니다.

github api를 응용한 클론 프로젝트 중

Github Open API

먼저 깃허브 api는 기본적으로 오픈 api로, 별도의 인증키 없이도 REST 기반 api를 활용할 수 있습니다.

예를 들어 아래 주소의 쿼리를 본인의 아이디로 바꾸고 브라우저에 입력하면 자신의 깃허브 정보를 JSON 형식으로 얻을 수 있습니다.

https://api.github.com/users/유저 아이디

https://api.github.com/users/c17an 을 입력한 결과

 

뿐만 아니라 유저 정보에는 팔로워나 저장소 목록 등을 불러올 수도 있는 엔드포인트도 포함되어 있는데요, 이처럼 유저의 거의 모든 정보를 손쉽게 얻을 수 있다는 점이 깃허브 api의 매력입니다.

API 호출횟수 늘리기

다만 이렇게 오픈 api로 사용할 경우 한 IP에서 1시간에 60회밖에 요청을 보낼 수 없다는 단점이 있습니다.

이를 해결하기 위해 PAT(Personnal Access Token) 을 발급받아 요청 한도를 늘려야 하는데요, 먼저 개발자 설정 메뉴로 진입합니다.

우측 상단의 [Settings] 메뉴 - [Developer settings] 선택

개발자 설정에 진입하면 개발에 필요한 도구들을 관리할 수 있는데요, 이 중 Personnal access tokens 메뉴에서 새로운 토큰을 생성합니다.

Generate new token 버튼을 눌러 새 토큰을 생성합니다.

토큰 생성 페이지에서는 토큰에 포함할 권한을 지정할 수 있습니다.

권한은 목적에 맞게 사용하면 되며, 여기서는 유저 정보와 저장소에 접근할 수 있는 권한을 부여하겠습니다.

user, repo 권한에 체크한 모습입니다.

그럼 해쉬화된 PAT를 얻을 수 있는데요, 이 토큰은 절대로 다시 확인할 수 없으니 메모장 등에 복사해두어야 합니다.

 

이제 이 토큰을 요청 헤더의 Authorization 속성에 (token 해쉬값) 형태로 추가합니다.

const user = await axios.get(`https://api.github.com/users/${user}`, {
  headers: {
    Authorization: "token 123abc456...",
  }, 
});

그럼 이제부터 api 호출 제한이 시간당 5,000회로 늘어나 실제 배포용 앱에서도 사용할 수 있는 수준이 됩니다. 😊

 

반응형
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆