masterdany88
masterdany88

Reputation: 5341

Spring what is the easiest way to return custom Http status, headers and body to Rest Client

I would like to return to my Rest Client the simplest answer. Only the:

What is the easiest way?

I've used to use ResponseEntity object this way:

return new ResponseEntity<String>("Custom string answer", HttpStatus.CREATED);,

but unfortunately, I can not simple pass http header in constructor.

I have to create HttpHeaders object and there add my custom header like this:

MultiValueMap<String, String> headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN_VALUE);

return new ResponseEntity<String>("Custom string answer", headers, HttpStatus.CREATED);

But I am looking for something simpler. Something that could fit one line of code.

Can Anyone help?

Upvotes: 2

Views: 14669

Answers (2)

ravinikam
ravinikam

Reputation: 3696

I guess this will help:

@RequestMapping(value = "/createData", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
@ResponseBody
public String create(@RequestBody Object input)
{
    return "custom string";
}

Upvotes: 5

Daniel Bubenheim
Daniel Bubenheim

Reputation: 4229

As already suggested from @M.Deinum this is the easiest way:

@RequestMapping("someMapping")
@ResponseBody
public ResponseEntity<String> create() {
    return ResponseEntity.status(HttpStatus.CREATED)
       .contentType(MediaType.TEXT_PLAIN)
       .body("Custom string answer");
}

Upvotes: 8

Related Questions