일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- machine-learning
- mybatis
- 자바
- 도커
- Python
- springboot
- Winform
- 파이썬
- Kotlin
- react
- 스프링부트
- docker
- Spring Boot
- c#
- kubernetes
- github
- MySQL
- 쿠버네티스
- 스프링
- 리팩토링
- DataGridView
- design pattern
- Spring
- AWS
- 마이바티스
- Java
- VOA
- 코틀린
- 리액트
- git
Archives
- Today
- Total
보뇨 다이어리
RestAPI POST 시 return 값에 대해서 본문
반응형
현재 내가 다니고 있는 회사에서는 post 시 return 값으로 이런식으로 보내준다
{
"id" : 230
}
근데 굳이 RequestBody 에 넣어야하나 싶기도하고 솔직히 옳고 그름은 없지만 좀더 쿨한 모습이 뭘까 생각하다가 문득 넷플릭스는 어떻게 했을까 궁금해서 찾아보았다 거기는 이런식으로 되어있었다
HTTP/1.1 201 Created
Location: https://genie.example.com/api/v3/applications/07d38b08-91f1-47e9-8629-29e42a6e2b8a
Location 저거는 json 으로 뿌려주는건가싶어서 찾아봤는데 그건아니였다 http header 에 Location 필드 초기화 시키는것이였다!!
그래서 오우야 어차피 날아가는 http header 에 넣다니!! 완전 쿠우우울하군! 해서 어떻게 하는지 찾아보았다
바로 아래 첫번째꺼는 구버전 스프링에서 해당한다 즉 현재 내 스프링이 2.x 버전이기때문에 첫번째꺼를 썼고 그외 신버전을 쓰고있는경우 2번째꺼를 해봤다
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<?> createCustomer(UriComponentsBuilder b) {
UriComponents uriComponents =
b.path("/customers/{id}").buildAndExpand(id);
HttpHeaders headers = new HttpHeaders();
headers.setLocation(uriComponents.toUri());
return new ResponseEntity<Void>(headers, HttpStatus.CREATED);
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<?> createCustomer(UriComponentsBuilder b) {
UriComponents uriComponents =
b.path("/customers/{id}").buildAndExpand(id);
return ResponseEntity.created(uriComponents.toUri()).build();
}
이렇게 하게 되면 postman 으로 실행시 리턴값으로는 맨위에 썼던 http 201 형식으로 오게되고 Location 필드에 값이 초기화되어있는것을 확인할수있다.
출처
반응형
'컴퓨터 관련 > Java 정보' 카테고리의 다른 글
Spring Boot : Gradle 에서 logging 제외시키기 (0) | 2019.07.17 |
---|---|
RestController 에서 공통 uri 제거하기 (0) | 2019.07.16 |
Too many characters in character literal 에러 (0) | 2019.06.18 |
Rest API PathVariable 에 (. Comma) 콤마 인식하기 (0) | 2019.05.08 |
logback 사용시 TimeBasedRollingPolicy 파일 생성되지 않을때 (0) | 2019.02.20 |