【问题标题】:How to use Objects as parameters in REST webservices如何在 REST Web 服务中使用对象作为参数
【发布时间】:2015-08-03 17:48:16
【问题描述】:

我正在编写一个看起来像这样的休息服务:

@POST
@Consumes("application/json")
public void save(@QueryParam("firstName") String firstName, @QueryParam("lastName") String lastName, @QueryParam("email") String email) {
    User user = new User(firstName, lastName, email);
    db.createUser(user);
}

我希望能够有类似对象参数的东西:

@POST
@Consumes("application/json")
public void save(@ObjectParam User user) {
    db.createUser(user);
}

不必指定我期望的参数或编写我自己的对象解析器会很好。

【问题讨论】:

  • 你试过了吗?你收到错误了吗?
  • @ObjectParam 不存在,但我想要这样的东西。现在我没有办法使用对象作为参数
  • 请参阅@WestonJones 的答案 - 您在参数列表中包含的所有内容都被视为消息正文 - 只有当您希望有更多参数作为路径或查询参数出现时,才需要注释。

标签: java json web-services rest jax-rs


【解决方案1】:

应该够了

@POST
@Consumes("application/json")
public void save(User user) {
    db.createUser(user);
}

只要您在 POST 中包含匹配的 JSON 对象,它就应该将该对象映射到 JSON。

【讨论】:

    【解决方案2】:

    在 Spring REST 中,可以执行以下操作:

    @RequestMapping(value = "/", method = RequestMethod.POST)
    public ResponseEntity<Car> update(@RequestBody Car car) {
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2011-09-04
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      相关资源
      最近更新 更多