2017-11-09 9 views
0

私は残りのいくつかの外部APIのラッパーのように機能する残りのAPIを持っています。ローカルセッションオブジェクトとそれらのAPIの応答に基づいた2つのオブジェクトを保存する。私はこのようなだけでエラーメッセージを表示してブロックの内容を置き換えることを計画して失敗し、または利用できないこと、これらのAPIのいずれかの場合に関連オブジェクトの保存に失敗した場合のREST API応答のステータスコード

{ 
    session { 
     session_id: 123, 
     ... 
    }, 
    data1 { 
     id: 456 
     ... 
    } 
    data2 { 
     id: 789 
     ... 
    } 
} 

呼び出しが成功すると、このようなものになります:そのような状況で

{ 
    session { 
     session_id: 123, 
     ... 
    }, 
    data1 { 
     error: "service unavailable" 
    } 
    data2 { 
     id: 789 
     ... 
    } 
} 

201ステータスコードはまだセッションオブジェクトが正常に作成された一方で、関連するデータがありませんでしたとして、最も適切であろう。

答えて

0

202ステータスコードは、APIがリクエストを受け取り、リクエスタが即時応答(非同期)を期待していないことを確認しているときに使用されます。上記要求のステータスに関するリクエスタ(コールバック経由でもよい)に通知することができます。

同期要求を行っている場合は、202応答ではなく、適切なエラーコードで応答する必要があります。

+0

申し訳ありませんが、私は202ではなく201を意味しました。私は問題を修正しました。 – arcticfeather

+0

実際には、エンドポイントが「作成済み」をどのように解釈するかによって異なります。後で失敗したリクエスト部分を再処理していますか?プロセスの一部が失敗した場合にロールバックを計画していますか?要求の他の部分が失敗しても依頼が完了したとみなしますか。 例として、ユーザー作成が可能で、Gravatarとのリンクやクレジットカードへのリンクなど、外部APIの重要性を評価することができます。 – rai

関連する問題