ユーザーが常にいくつかの「プラン」のいずれかを使用するプロジェクト用のREST APIを設計しています。各プランは、アカウントに含めることができるユーザーの最大数やアップロードできるデータの最大数など、リソースの制限を定義します。これらの制限の1つに達すると、ユーザーはプランをアップグレード(基本的に支払い)して、より多くのリソースを取得できます。
アカウントのリソース制限のためにアクションを実行できない状況を示す特別なステータスコードを返します。プランをアップグレードすると解決します-たとえば、ユーザーがストレージ容量の100%を使用して追加のファイルをアップロードしようとした場合、彼らはこの応答を受け取ります。
候補者は次のとおりです。
403 Forbidden
-ただし、このケースと、ユーザーがこのアクションを実行するための許可を単に持たない他のケースとを区別したいと思います。401 Unauthorized
-良いアイデアではありません。認証関連の問題にこれを使用しています。402 Payment Required
-ある意味理にかなっていますが、標準ではないが予約済みのステータスコードの使用が心配です423 Locked
将来的には他のものに使用する可能性が低いため、さらに標準以下のもの
別のオプションは、非常に標準的なもの403
を使用することです。ただし、応答本文にエラーの詳細を示します。
どのアプローチが(a)長期的に最も効果的であり、(b)RESTfulな原則にもっとうまく適合すると信じているのか疑問に思っています。