RestTemplate和变量的变量

时间:2016-10-17 03:58:01

标签: java json spring spring-mvc

我必须将json发布到api_url进行登录。

{
"username":"testre","password":"password"
}

当我使用邮递员检查此api时,它会回复成功的身份验证,如下所示。

{
  "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/编写的。在这里,我根据登录成功状态获得不同数量的变量。我是春天的新手,所以我很困惑创建了从rest模板中获取的登录回复类。 (例如在Quote quote = restTemplate.getForObject("http://gturnquist-quoters.cfapps.io/api/random", Quote.class);示例中这样但我需要返回一个json对象)。我无法弄清楚如何编写RestTemplate部件。

1 个答案:

答案 0 :(得分:0)

正如@Andreas所建议的那样:

  • 为所有可能的回复添加所有字段的超集
  • 确定每个响应必需的字段集并使其成为必需
  • 将其余字段设为可选

收到回复后,请检查状态代码并相应地实施您的逻辑。

如果您使用Jackson进行反序列化,默认情况下所有字段都是可选的(请参阅this question