如何从Dropwizard服务发回简单的消息?

时间:2014-04-09 18:20:01

标签: java rest jersey dropwizard

对于一种方法,如何在一个场景中发回一个简单的String并在另一个场景中发送一个对象?

例如。对于signup,如果用户创建成功,或者发送User之类的消息,我想发回username already exists个对象。

到目前为止我所拥有的:

@POST
@Path("/signup")
public User signup (@Valid User user) {
  if (dao.doesUserExist(user.getName())
    //how can I return a message here?
  else 
    return createNewUser();
}

3 个答案:

答案 0 :(得分:1)

这有帮助吗?

@POST
@Path("/path")
public Response signup (@Valid User user)
{

  if (dao.doesUserExist(user.getName())
    //return a message here
    Response.status(Status.CONFLICT).type(MediaType.TEXT_PLAIN).entity("user already exists, but due to OWASP (https://www.owasp.org/index.php/Authentication_Cheat_Sheet) -> An application should respond with a generic error message regardless of whether the user ID or password was incorrect. It should also give no indication to the status of an existing account. ").build();
  else 
    return createNewUser();

}

答案 1 :(得分:0)

投掷怎么样:

throw new WebApplicationException(409);

这表明存在冲突。它对客户端比返回错误字符串更有用。

答案 2 :(得分:0)

您可以使用Response将简单消息返回给客户,在您的回复中,您可以将User更改为Response并在响应正文中返回您的creted用户或消息