2016-12-23 4 views
-1

jerseyを使用してRESTFul APIでログインモジュールを設計しました。返り値Jersey RESTFul API(JAX-RS)の2つのJSONオブジェクトの配列

それはのようなエラーコードとメッセージを返しますログイン中にエラーが発生したときに、

{ 
    "errorFlag": 1, 
    "errorMessage": "Login Failed" 
} 

が、私は成功した結果を得るたびに、私は

以下のような結果を探しています

{ 
    "apiKey": "3942328b-fa65-496c-bf32-910aafbc1b0e", 
    "email": "[email protected]", 
    "name": "Chandrakant" 
} 

を返します。

{ 
      "errorFlag": 0, 
      "errorMessage":{ 
      "apiKey": "3942328b-fa65-496c-bf32-910aafbc1b0e", 
      "email": "[email protected]", 
      "name": "Chandrakant"} 
} 
+0

"errorMessage"という名前のフィールドにエラーメッセージ以外の何かがあることは分かりませんが、とにかく、あなたの質問は何ですか?あなたがそれをやり遂げるのを妨げる何が?認証が失敗した場合、APIキーとユーザーの名前をどのように格納する予定ですか?そのため、ユーザーが誰であるかわからないのですか? –

+0

更新された質問を見ると、クライアントアプリケーションはフラグが1か0かをチェックします –

+1

"errorMessage"という名前のフィールドにエラーメッセージ以外の何かがあるという点はまだ分かりません。そして、あなたはまだあなたの質問が何だったのか、そしてあなたがそれをやり遂げるのを妨げたことを話していません。しかし、どうしてあなたはそれをやりますか?クライアントは、2xxのステータス(通常は200 - OK)の応答を返信するので、成功したことを既に知っているはずです。また、エラーステータス(ここでは401である必要があります)の応答を返信するので、エラーであることがわかります。これが標準的なHTTPのやり方であり、すべてのクライアントHTTPライブラリはこれらの標準的な方法に依存しています。 –

答えて

0

以下のような構造を使用してください。

{ 
    status/statusCode : 200/400, //eg. 200 for success, any other for failure. 
    statusMessage : "Success/<failureMessage>", 
    errorDetails : "Failed due to <reason>" //optional 
    data :{ //data will exists only in case of success call. 
    } 
} 

あなたは以下のようにこれを達成することができ、

@GET 
@Path("/images/{image}") 
@Produces("image/*") 
public Response getImage(@PathParam("image") String image) { 
  File f = new File(image); 
  
  if (!f.exists()) { 
    throw new WebApplicationException(404); 
  } 
  
  String mt = new MimetypesFileTypeMap().getContentType(f); 
  return Response.ok(f, mt).build(); 
} 
+0

これは理にかなっていますが、どのようにしてこのコードサンプルを実現できますか? –

+0

上記のクラスの 'Response'クラスを使用して、ドキュメントを見てください。 –

0

あなたはキー値としてのHashMap内のすべての属性を返すことができます。コードの一部の下 私

@POST @Path( "/テスト")のために働い @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) 公衆HashMapのチェック(入力ストリームinputJsonObj){ のHashMap map =新しいHashMap(); map.put( "key1"、 "value1"); リターン・マップ;
}

関連する問題