Reputation: 5341
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
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
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