HATEOAS 방식에서 ResponseEntity .notFound() 반환처리 질문입니다.
아무도 안물어보시는것 같아서, 묻게되었습니다.
영상 7분 9초 경 - 영상에 없는 "추가적인 NOT_FOUND 반환값"
을 갖도록 해서, 문서처리를 하려고합니다
이는, ResponseEntity.notFount() 반환값이, HeadersBuilder 인터페이스 타입이라서..
ResponseEntity.HeadersBuilder
이 경우 body(..) 가 없고, header( .. ) 만 있는데, 본문을 담을 수 없습니다.
그래서 Header 만 추가되도록 구성해야 하는데요, 학생들에게 구현하도록 두신건지,
너무 간단해서 언급 안하신건지, 구현하려고 하니 검색자료가 잘 나오질 않아 해매고 있습니다.
질문입니다
HATEOAS 의 경우, 이런 부분은 일반적으로 어떻게 처리가 되는지요?
아래 코드에서 ".header(HttpHeaders.?, ...?)"에 Location 속성에 경로값 설정만 하면 될까요?
@GetMapping("/{id}")
public ResponseEntity getEvent(@PathVariable Integer id) {
var dtoOut = eventRepository.findById(id)...
if (dtoOut.isEmpty()) return ResponseEntity
.notFound()
.header(HttpHeaders.??, ...???) <<<
.build();
...
return ResponseEntity.ok(...)
}또는, 구현할 필요가 없나요? (HATEOAS 가 전후방 이동경로를 제공하는 메커니즘이라면, 이 경우에도 방향을 잃지 않도록 제공해야 할까요? 아니면 필요가 없나요? 또는 redirect.. )
궁금합니다
답변 1
1
좋은 질문 감사합니다. 404에 대한 경우를 다루지 않았었군요. 정답이 있는 건 아니니까 헤더에 링크 정보를 추가하고 싶다면 말씀하신 방법을 쓰셔도 좋고, 본문을 추가하고 싶으시면 ResponseEntity를 new를 사용해서 만들어 쓰셔도 됩니다.
ResponseEntity(@Nullable T body, @Nullable MultiValueMap<String, String> headers, HttpStatus status)
이 생성자를 쓰시면 되겠네요.
0
좋은 조언 감사드립니다. 도움이 많이 되었습니다.
답글을 보고나서 `of` factory 메서드 가 모든 기능을 지원하지 않는것을 알았고,
ResponseEntity 상속 구현으로도 또다른 factory 메서드를 통해
생성자 로직을 다시 간소화 시킬수 있겠다 생각이 들었습니다.
앞으로 생성자도 꼭 살펴보도록 할께요. 고맙습니다.!
Spring 시큐리티 관련해서 WebSecurityConfigurationAdapter
0
86
1
junit5 사용하시는 분들
0
100
1
자바 빈 스펙을 준수하는지 체크하는 테스트
0
263
2
REST API 개발 중 비즈니스 로직 적용 부분의 JSON 에러
0
258
1
스프링 부트 3버전에서의 실습
0
197
1
java.lang.AssertionError: Status
0
545
2
spring doc 관련 파일 생성 관련 배포 관련 질문 드립니다.
0
293
1
섹션2 201응답받기 부분 테스트 404에러 질문입니다
0
746
1
강의 자료가 404입니다 확인 부탁 드려요!
0
484
1
연동 DB문의
0
370
1
이벤트 Repository강의 중 Event 클래스에 private Integer Id; 위치 질문
0
512
1
(Mac) postgressql 관련하여 port kill 해도 다시 살아나는 경우
0
391
0
maven으로 생성한 docs파일(index.html)에서의 not found 오류 질문
0
637
1
테스트 오류 질문드립니다.
0
518
1
docs 요청값이 반영이 안되네요... (해결)
-1
401
1
psql 적용 후 에러
0
828
2
mvn package 시 다음과 같은 에러가 나시면
0
772
2
Event에 Account manager를 추가했으면 문서화 필요
0
279
1
2년 훨씬 전 부터 Restlet-> Talend API 로 바뀌었습니다~
1
476
1
asciidoc 추가 스니펫 에러 해결법
0
405
1
_links 는 현재 fieldWithPath 를 해주지 않아도 됩니다.
0
434
3
깃랩 처음 사용자를 위한 index.adoc raw 보는 법
0
338
1
eclipse 쓰시는 분을 위한 maven-resources-plugin 팁
0
343
1
부트 + jupiter 인 경우 설정법
0
348
1





