Art*_*yan 3 java rest http spring-mvc spring-boot
有一个Spring-MVC
应用程序。在控制器中,当返回方法的结果时,我通过ResponseEntity<>
. 成功时,我返回(200
法规)OK
-方法。但是在创建某些东西时,我想返回CREATED
-method ( 201
status )。我只是不明白URL
在通过CREATED
. 如何实施?
现在我有这样的实现:
@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()));
}
Run Code Online (Sandbox Code Playgroud)
我想像这样重新制作它以使其工作(现在它不起作用):
@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()));
}
Run Code Online (Sandbox Code Playgroud)
PS我根本没有前端。全部通过 Swagger 或 PostMan。
小智 9
您可以使用
ResponseEntity.created(ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(savedObjectId).toUri()).build()
Run Code Online (Sandbox Code Playgroud)
小智 8
只需这样返回:
return new ResponseEntity<Dish>('Your Returning Dish Object', HttpStatus.CREATED)
Run Code Online (Sandbox Code Playgroud)
确保您已导入 org.springframework.http.HttpStatus
如果您想创建一个没有正文的 201 (CREATED) 响应,请使用:
ResponseEntity.status(HttpStatus.CREATED).build()
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用
return new ResponseEntity(cookService.createDish(...), HttpStatus.CREATED);
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多内容
归档时间: |
|
查看次数: |
3371 次 |
最近记录: |