There is a Spring-MVC
application. In controllers, when returning the results of methods, I return via ResponseEntity<>
. On success, I return (200
statutes) the OK
-method. But when creating something, I would like to return the CREATED
-method (201
status). I just can’t understand what kind of URL
to ask in parentheses when calling through CREATED
. How can this be implemented?
Now I have such an implementation:
JavaScript
x
@PostMapping("/create/dish")
ResponseEntity<Dish> createDish(@Valid @RequestBody DishDTO dishDTO) {
return ResponseEntity.ok(cookService.createDish(dishDTO.getDishName(), dishDTO.getAboutDish(), dishDTO.getDishType(),
dishDTO.getCookingTime(), dishDTO.getWeight(),
dishDTO.getDishCost(), dishDTO.getCooksId()));
}
I want to remake it like this to make it work(now it not work):
JavaScript
@PostMapping("/create/dish")
ResponseEntity<Dish> createDish(@Valid @RequestBody DishDTO dishDTO) {
return ResponseEntity.created(cookService.createDish(dishDTO.getDishName(), dishDTO.getAboutDish(), dishDTO.getDishType(),
dishDTO.getCookingTime(), dishDTO.getWeight(),
dishDTO.getDishCost(), dishDTO.getCooksId()));
}
P.S. I don’t have a frontend at all. All through Swagger or PostMan.
Advertisement
Answer
Just return this way:
JavaScript
return new ResponseEntity<Dish>(cookService.createDish( ), HttpStatus.CREATED)
Making sure you have imported org.springframework.http.HttpStatus