아카이브

[스프링 기반 REST API 개발] 이벤트 조회 API 구현하기 본문

Spring/스프링 기반 REST API 개발

[스프링 기반 REST API 개발] 이벤트 조회 API 구현하기

주멘이 2021. 1. 9. 11:12

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 응답 확인