외부 API와 연동하다보면 사용 요청을 하면 API Key를 발급해주는 시스템이 상당히 많습니다. 예를 들어 아래 스크린샷은 accuweather에서 날씨 정보 연동을 요청한 결과 발급 받은 API Key이고 이 값을 HTTP 리퀘스트 헤더에 x-api-key로 넣으라는 경우입니다.
간혹 이것이 인증 정보를 착각하는 분들이 많이 계신 것 같은데요, x-api-key의 용도는 인증보다는 Throttling 목적으로 생성되는 것이 일반적입니다. AccuWeather API의 경우 하루 최대 50번의 API 리퀘트를 허용하는데요, 만약 이 limit를 오버하면 정상적인 값을 받을 수 없습니다. x-api-key 값을 헤더에 보내지 않거나 존재하지 않는 값을 보내면, 요청한 건수를 알 수 없기 때문에 401 Unauthorized 에러를 리턴하는 것이고요.
x-api-key throttling을 위한 대표 라이브러리로는 Java의 Bucket4j가 있고, AWS의 경우에는 API Gateway에서 API Key를 생성한 후 Usage Plan을 할당할 수 있습니다.
API를 하나 선택하면 API Keys에서 생성된 API 키들도 볼 수 있고, 새로은 API 키도 생성할 수 있습니다. 그 후 Usage Plan에서 아래와 같은 Limit들을 할당해 줄 수 있습니다.
이 경우는 초당 1000 리퀘스트까지 가능하고 동시접속은 300, 일간 10,000 요청을 처리할 수 있도록 설정되어 있는 예 입니다.
'개발 이야기' 카테고리의 다른 글
테스트 자동화 Cypress (0) | 2023.02.12 |
---|---|
HTTP Range 헤더 (0) | 2022.12.16 |
브라우저와 Postman으로 카카오 OAuth 구현하기 (6) | 2022.06.15 |
영어 어감을 확인하기 위한 구글 번역기 활용 (0) | 2022.06.10 |
OAuth 2.0 - Authorization Code (0) | 2022.06.09 |
최근댓글