inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 기반 REST API 개발

이벤트 조회 API 구현

HATEOAS 방식에서 ResponseEntity .notFound() 반환처리 질문입니다.

해결된 질문

771

Truestar

작성한 질문수 68

0

아무도 안물어보시는것 같아서, 묻게되었습니다.

이는, ResponseEntity.notFount() 반환값이, 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.. )

궁금합니다

 

java rest-api spring

답변 1

1

백기선

좋은 질문 감사합니다. 404에 대한 경우를 다루지 않았었군요. 정답이 있는 건 아니니까 헤더에 링크 정보를 추가하고 싶다면 말씀하신 방법을 쓰셔도 좋고, 본문을 추가하고 싶으시면 ResponseEntity를 new를 사용해서 만들어 쓰셔도 됩니다.

ResponseEntity(@Nullable T body, @Nullable MultiValueMap<String, String> headers, HttpStatus status) 

이 생성자를 쓰시면 되겠네요.

0

Truestar

좋은 조언 감사드립니다. 도움이 많이 되었습니다.

답글을 보고나서 `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