Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- rest api
- OAuth2
- Application Event
- JsonSerializer
- Application Runner
- 외부설정
- JPA
- WebApplication Type
- 정적 리소스
- 스프링부트
- HttpMessageConverters
- webjar
- 백트래킹
- AuthenticationPrincipal
- Spring Security
- 리소스핸들러
- 알고리즘
- 리소스 서버
- Application Argument
- 백기선
- application.properties
- HATEOAS
- 스프링 부트
- cors
- 다익스트라
- EnableAutoConfiguration
- 백준
- @ConfigurationProperties
- @Profile
- 브루트포스
Archives
- Today
- Total
아카이브
[스프링 기반 REST API 개발] 이벤트 조회 API 구현하기 본문
EventController에 getEvent 구현
@GetMapping("/{id}")
public ResponseEntity getEvent(@PathVariable Integer id) {
Optional<Event> byId = this.eventRepository.findById(id);
if (byId.isEmpty()) {
return ResponseEntity.notFound().build();
}
Event event = byId.get();
/* HATEOAS links add */
EventResource eventResource = new EventResource(event);
eventResource.add(new Link("/docs/index.html#resources-events-get").withRel("profile"));
return ResponseEntity.ok(eventResource);
}
getEvent Test 코드 작성
@Test
@TestDescription("기존의 이벤트를 하나 조회하기")
void getEvent() throws Exception {
// Given
Event event = this.generateEvent(100);
// When & Then
this.mockMvc.perform(get("/api/events/{id}", event.getId()))
.andExpect(status().isOk())
.andExpect(jsonPath("name").exists())
.andExpect(jsonPath("id").exists())
.andExpect(jsonPath("_links.self").exists())
.andExpect(jsonPath("_links.profile").exists())
;
}
@Test
@TestDescription("없는 이벤트를 조회하면 404 응답받기")
void getEvent_404() throws Exception {
// When & Then
this.mockMvc.perform(get("/api/events/5215"))
.andExpect(status().isNotFound())
;
}
테스트 할 것
조회하는 이벤트가 있는 경우 이벤트 리소스 확인
- 링크
- self
- profile
- (update)
- 이벤트 데이터
조회하는 이벤트가 없는 경우 404 응답 확인
'Spring > 스프링 기반 REST API 개발' 카테고리의 다른 글
[스프링 기반 REST API 개발] 테스트 코드 리팩토링 (0) | 2021.01.09 |
---|---|
[스프링 기반 REST API 개발] 이벤트 수정 API 구현하기 (0) | 2021.01.09 |
[스프링 기반 REST API 개발] 이벤트 목록 조회 API 구현 (0) | 2021.01.09 |
[스프링 기반 REST API 개발] API Index Handler, ErrorsResource 추가하기 (0) | 2021.01.06 |
[스프링 기반 REST API 개발] 테스트용 DB와 설정 분리하기 (0) | 2021.01.06 |