일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- react
- 파이썬
- BFS
- 자바스크립트
- k8s
- 클라우드
- es6
- 쿠버네티스
- 프론트엔드
- 이슈
- VUE
- JavaScript
- 가상화
- 타입스크립트
- TypeScript
- 컴퓨터공학
- 웹
- 리액트
- 솔리디티
- AWS
- 백준
- 블록체인
- kubernetes
- 백엔드
- next.js
- docker
- CSS
- 이더리움
- HTML
- 알고리즘
- Today
- Total
즐겁게, 코드
github api 요청 한도 늘리기 본문
{
"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 Open API
먼저 깃허브 api는 기본적으로 오픈 api로, 별도의 인증키 없이도 REST 기반 api를 활용할 수 있습니다.
예를 들어 아래 주소의 쿼리를 본인의 아이디로 바꾸고 브라우저에 입력하면 자신의 깃허브 정보를 JSON 형식으로 얻을 수 있습니다.
https://api.github.com/users/유저 아이디
뿐만 아니라 유저 정보에는 팔로워나 저장소 목록 등을 불러올 수도 있는 엔드포인트도 포함되어 있는데요, 이처럼 유저의 거의 모든 정보를 손쉽게 얻을 수 있다는 점이 깃허브 api의 매력입니다.
API 호출횟수 늘리기
다만 이렇게 오픈 api로 사용할 경우 한 IP에서 1시간에 60회밖에 요청을 보낼 수 없다는 단점이 있습니다.
이를 해결하기 위해 PAT(Personnal Access Token) 을 발급받아 요청 한도를 늘려야 하는데요, 먼저 개발자 설정 메뉴로 진입합니다.
개발자 설정에 진입하면 개발에 필요한 도구들을 관리할 수 있는데요, 이 중 Personnal access tokens 메뉴에서 새로운 토큰을 생성합니다.
토큰 생성 페이지에서는 토큰에 포함할 권한을 지정할 수 있습니다.
권한은 목적에 맞게 사용하면 되며, 여기서는 유저 정보와 저장소에 접근할 수 있는 권한을 부여하겠습니다.
그럼 해쉬화된 PAT를 얻을 수 있는데요, 이 토큰은 절대로 다시 확인할 수 없으니 메모장 등에 복사해두어야 합니다.
이제 이 토큰을 요청 헤더의 Authorization 속성에 (token 해쉬값) 형태로 추가합니다.
const user = await axios.get(`https://api.github.com/users/${user}`, {
headers: {
Authorization: "token 123abc456...",
},
});
그럼 이제부터 api 호출 제한이 시간당 5,000회로 늘어나 실제 배포용 앱에서도 사용할 수 있는 수준이 됩니다. 😊
'😾 Git & Github' 카테고리의 다른 글
git reset으로 스테이징과 커밋 되돌리기 (0) | 2021.08.22 |
---|---|
한밤의 리베이스 실패기 (2) | 2021.05.25 |
깃허브 프로젝트에 라이센스 부여하기 (0) | 2021.05.04 |
좋은 커밋 메시지란 & 커밋 템플릿 만들기 (1) | 2021.02.22 |
github1s 로 깃헙 코드를 즉시 VSCode로 살펴보기 (0) | 2021.02.11 |