2017-02-13 3 views
0

私はREST API開発に新しく、私はmavenを使用していません。私はeclipseを使って開発しています。入力RESTに基づいて同じリクエストに対して2種類のJSON応答を送信する方法はありますか?

は今、私は特定の応答は、上記の応答が成功した場合にする必要があります例

{ 
"Status_cd":"1" 
"status":"succ" 
} 

のために言ってきていると私は

{ 
"status_cd":"0" 
"error":{ 
    "Error_cd":"2131" 
    "Message":"unable to process" 
     } 
} 

のようなエラー応答がどのように私のシリアル化されたクラスを書きたいです同じ要求に対してこれらの2種類の応答に対応するには?

答えて

1

RESTコントローラでは、ワイルドカードパラメータ化を使用してResponseEntityオブジェクトを返すように、エンドポイントメソッドを設計します。

//Here your mapping annotation 
public @ResponseBody ResponseEntity<?> getSuccessOrError() { 

    //Body omitted 
    //in case of success return new ResponseEntity(YourSuccessClass, HttpStatus) 
    //in case of error return new ResponseEntity(YourErrorClass, HttpStatus) 

} 

またはあなたはそれが両方stauserrorフィールドを含むようにあなたの応答のクラスを設計した値でのみ必要なものを初期化することができます。

+0

こんにちはヤクブiはゲッターとセッターメソッド 公衆リストgetError(){ \t \tリターンエラーを有する2つの別々のクラスファイルを作成してみました。 \t} \t公共ボイドSETERROR(リストエラー){ \t \t this.error =エラー。 \t} \t公開リスト getResponse(){ \t \tリターンレスポンス; \t} \t公共ボイドはsetResponse(リスト応答){ \t \t this.response =応答。 \t} しかし、これ以降の返事は {"error":null、 "response":[{"status_cd": "1"、 "status": "success"}] } – karthik

+0

とにかく私はジャクソンの注釈@JSONInclude(INCLUDE.NON_NULL)を使って私のことを働かせてくれました – karthik

+0

@karthik私はあなた自身でそれを解決してうれしいです。 –

関連する問題