사용자가 항상 여러 "계획"중 하나에있는 프로젝트를 위해 REST API를 설계하고 있습니다. 각 계획은 계정에 보유 할 수있는 최대 사용자 수 또는 업로드 할 수있는 최대 데이터 수와 같은 일부 리소스 제한을 정의합니다. 이러한 제한 중 하나에 도달하면 사용자는 계획을 업그레이드 (필수적으로 지불)하여 더 많은 리소스를 얻을 수 있습니다.
계정 리소스 제한으로 인해 작업을 수행 할 수없는 상황을 나타내는 특수한 상태 코드를 반환하고 계획을 업그레이드하면 문제가 해결됩니다 (예 : 사용자가 스토리지 용량의 100 %를 사용하고 추가 파일을 업로드하려는 경우) 이 응답을받습니다.
후보자는 IMHO :
403 Forbidden
그러나이 사례와 사용자 에게이 작업을 수행 할 수있는 권한이없는 경우를 구별하고 싶습니다.401 Unauthorized
-좋은 생각이 아닙니다. 인증 관련 문제에 사용하고 있습니다.402 Payment Required
-말이 되겠지만 비표준이지만 예약 된 상태 코드를 사용하는 것이 걱정됩니다.423 Locked
앞으로는 다른 어떤 용도로도 사용하지 않을 것 같은 표준보다 낮은 것
또 다른 옵션은 403
응답 본문에 오류의 세부 사항을 나타내는 것과 같은 매우 표준적인 것을 사용하는 것입니다.
(a) 장기적으로 가장 잘 작동하고 (b) RESTful 원칙에 더 잘 부합 할 것이라고 생각하는 방법이 궁금합니다.