2016-10-17 16 views
0

ログインのためにjsonをapi_urlにポストする必要があります。RestTemplateと変数の変数番号

このapiをチェックするためにpostmanを使用すると、以下のような正常な認証が返されます。

{ 
    "status": "success", 
    "code": 200, 
    "message": "username, password validated.", 
    "data": [ 
    { 
     "password": "password", 
     "username": "testre" 
    } 
    ], 
    "links": [ 
    { 
     "rel": "self", 
     "link": "http://localhost:2222/pizza-shefu/api/v1.0/customers/login/" 
    }, 
    { 
     "rel": "profile", 
     "link": "http://localhost:2222/pizza-shefu/api/v1.0/customers/testre" 
    } 
    ] 
} 

下記のような不正なjsonの場合。

{ 
    "status": "unauthorized", 
    "code": 401, 
    "errorMessage": "HTTP_UNAUTHORIZED", 
    "description": "credentials provided are not authorized." 
} 

以前はjavaを使用して取得しました。でも今は春にRestTemplateを使ってリファクタリングしたいと思っています。問題は、私が読んだすべての例が固定数の変数に対して書かれていることです。https://spring.io/guides/gs/consuming-rest/。ここでは、ログインの成功状況に応じて変数の数が異なります。私は春に新しく、残りのテンプレートから取得するログイン応答のクラスを作成するのは混乱します。 (この例のようにQuote quote = restTemplate.getForObject("http://gturnquist-quoters.cfapps.io/api/random", Quote.class);しかし、私はjsonオブジェクトを返す必要があります)。私はRestTemplateパートを書く方法を理解できませんでした。

+1

フィールドだけのスーパーセットを追加し、それらをオプションに。必要に応じて 'status'と' code'を必要にすることができますが、残りはオプションで、あるいはステータスコードに依存します。残りはJavaコードで処理します。 – Andreas

答えて

0

@Andreasによって示唆されるように:すべての可能な応答

  • は、すべての応答のために必須フィールドのセットを識別し、それらの残りの部分を作る
  • を必要と作るため

    • は、すべてのフィールドのスーパーセットを追加します。フィールドを任意に指定することができます。

    レスポンスを受け取ったら、ステータスコードを確認してロジックを実装します。

    あなたが逆シリアル化のためにジャクソンを使用している場合は、すべてのフィールドはデフォルトではオプションで(this questionを参照)

  • 関連する問題