リモートサーバーに対して実行される iOS アプリケーションを開発しており、その背後に別の開発者がいます。私たちが書いているプロジェクトと API ドラフトは初期段階にあります。
私たちが直面している問題は、HTTP/REST 仕様で記述された従来のステータス コードの量に満足できず、どのコードを取得すればよいかわからない場合があることです。
最小限のコンテキストを提供する例:
サーバー側の検証エラー。Fx。クライアント側の検証は問題ありませんが、サーバー API が最近わずかに変更されたため、サーバーはそれが検証の問題であることを示す何かを返す必要があります。
すでに存在するユーザーを登録しようとしています。SOトピックは、それに関する正確なポイントを提供しません。
ユーザーが登録されており、パスワードの確認手順を完了せずにログインしようとしています。
ここで見られる 2 つの明白なアプローチ:
適切な従来のステータス コードが見つからなかった場合は、fx 400 エラーを使用します。これにより、JSON 応答からエラー テキスト メッセージを解析することができます。明らかに、このアプローチはクライアント側のコードに余分な複雑さをもたらします。
独自のサブコード システムを作成し、コード内でそれを利用します。これにはあまりにも多くの人為的な慣習が含まれており、あまりにも独断的で恣意的になる傾向があります。
そのようなケースの数が増えると感じているため、サーバーが返す JSON 応答にカスタム サブコードを導入することを検討しています (つまり、2 番目のアプローチを選択します)。
私がここで尋ねていること:
このような状況で推奨されるアプローチ、戦略、接着剤やハックは何ですか?
ステータス コードの REST/HTTP 規則に厳密に従うことから離れることの長所と短所は何ですか?
ありがとう!