요청 제한
요청 제한
개요
토큰이 Developer Portal, OAuth 권한 부여, 또는 Frame.io 자체 애플리케이션을 제공하는 Accounts 백엔드 중 어느 곳을 통해 배포되었든 간에, Frame.io에 대한 모든 API 호출에는 요청 제한이 적용됩니다.요청 제한은 (사용된 토큰이나 인증 방식에 관계없이) 개별 사용자의 모든 API 요청에 적용되며, 점진적으로 소진 및 보충되고, Frame.io API에 전송된 모든 요청의 응답 헤더에 반영됩니다. 각 엔드포인트는 고유한 제한을 가지도록 구성되며, 최저 분당 10회 요청에서 최고 초당 100회 요청까지 다양합니다. 특정 엔드포인트에 대한 요청 제한을 초과한 요청은 응답으로 429 HTTP 오류를 받게 됩니다.
소진 및 보충
Frame.io API는 점진적 요청 제한을 위해 누수 버킷 전략을 사용하며, 이 방식에서는 할당된 시간 내에 제한이 점진적으로 갱신됩니다. 즉, 특정 리소스에 대해 제한이 갱신되는 엄격한 컷오프 개념은 없습니다(즉, “고정” 및 “슬라이딩 윈도우” 적용 전략). 대신 남은 제한 횟수는 리소스의 제한 및 시간 창에 비례하는 속도로 지속해서 갱신됩니다.
지수 백오프
요청 제한 관리를 위해 저희가 권장하는 전략은 일반적으로 “지수 백오프”라고 합니다.
요약하자면:
429를 수신하면 일정 시간(일반적으로 1초) 동안 일시 중지합니다.- 또다시
429를 수신하면 정상 기능이 재개될 때까지 대기 시간을 지수적으로 늘립니다.
제목
API 요청에 대한 응답에는 발신 요청을 제한하는 데 활용해야 하는 다음 세 가지 헤더가 항상 포함됩니다.
예시
다음 예시는 프로젝트 루트, 폴더, 또는 버전 스택의 하위 에셋을 가져오기 위한 GET v2/assets/:id/children에 대한 응답에서 발췌한 것입니다. 해당 경로의 제한은 60,000ms(1분)당 40회 요청이며, 요청을 한 번 실행한 후 39회의 요청이 남아 있습니다.
세부 사항
Frame.io API의 리소스 경로에 따라 요청 제한은 크게 다릅니다. 아래는 가독성을 위해 리소스와 작업(예: PUT /assets/:id 대신 “에셋 — 업데이트”)으로 표현된 일부 세부 정보입니다.
일반적인 규칙으로, 새 데이터를 생성하는 리소스 경로는 분당 100회 호출 이하로 제한되며, 에셋 목록을 가져오는 리소스 경로는 분당 200회 호출로 제한됩니다.