HttpStatus.CREATED和URI LOCATION之间的区别

时间:2018-10-28 12:07:16

标签: spring-boot

假设我的控制器类中有一个post方法来创建商品,并且我想显示201的状态,即通过邮递员访问api时创建的状态。 这可以通过以下两种方法实现: @ResponseStatus(HttpStatus.CREATED)和响应实体。我想知道两者之间的区别。我把它们放进了**。

@PostMapping("/offers")
**//@ResponseStatus(HttpStatus.CREATED)**
public ResponseEntity<Object> createOffer(@Valid @RequestBody Offer offer) {
    Offer uoffer =  offerService.createOffer(offer);

    URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{jobTitle}").
            buildAndExpand(uoffer.getJobTitle()).toUri();

    **return ResponseEntity.created(location).build();**

}

1 个答案:

答案 0 :(得分:0)

使用@ResponseStatus(HttpStatus.CREATED)

您只能获得状态201。

但是使用ResponseEntity可以在不同情况下返回不同的状态。