상똥이의 Back-End 공부방

[Board Project] 10. API 탐색 - 조회 위주 (HAL Explorer, Rest Repositories) 본문

프로젝트/게시판 만들기

[Board Project] 10. API 탐색 - 조회 위주 (HAL Explorer, Rest Repositories)

상똥백 2023. 10. 15. 19:09

목차

1. API를 탐색할 수 있도록 환경을 구성한다

2. API를 조회 위주로 탐색한다.

 

[1. API 환경 준비]

1. spring data rest라는 기능을 이용하면 빠르게 Restful한 API를 만들 수 있다.

- 이를 위해 Spring Initializr 에 가서 RestRepository, HAL Explorer 의존성을 복사해 build gradle에 주입한다.

//build gradle-dependencies에 추가
	implementation 'org.springframework.boot:spring-boot-starter-data-rest'
	implementation 'org.springframework.data:spring-data-rest-hal-explorer'

- ArticleRepository.class와 ArticleCommentRepository.class에 @RepositoryRestResource를 붙어 Restful한 개발이 가능해지도록 한다.

- yaml.파일에 spring.data.rest.base-path: /api 를 추가하여 api로 이동하도록 설정한다.

- yami 파일에 spring.data.rest.detection-strategy: annotated를 추가하여 내가 지정한 api만 오픈하도록 설정한다.

spring
  data.rest.base-path: /api
  data.rest.detection-strategy: annotated

 

- localhost:8080/api 실행하면  HAL 사용 가능

 

[2. API 탐색]

1. API로 이동

(1) 어플리케이션 실행 후 localhost:8080/api 링크로 이동

- HAL API → 원하는 데이터를 쉽게 조회 가능

(2) 아래와 같은 화면으로 이동됨

 

2. API 메인화면

(1) Response Body : 실행 가능한 restful api

 

3. article 조회 화면으로 이동

(1) GET (=  <   ) 클릭시 이동

(2) JSON Properties

- size : article get(조회) 클릭시 article select가 되어 20개씩 보임

- totalElements : article 테이블 안에 123개의 카디널리티 존재

- total pages: 카디널리티를 보여주는 페이지 개수 (123개의 카디널리티를 20개씩 보여주므로, 7개의 페이지가 필요)

- number: 현재 보고 있는 페이지의 순서 (0~6, 총 7개)

(3) Links 페이지 이동

(4) Response status : 응답 상태, 200이면 캐시 가능한 상태

(5) Response Body : 해당 페이지에서 보여줄 수 있는 게시글들의 속성들을 보여줌

(6) Embeded Resporces

- 각 페이지의 article[n] 데이터 목록 (n=0~19, 20개)

(7) article[n]으로 이동

- 위의 Embedded Resorces 의 article중 하나를 누르면 아래와 같이 상세한 정보가 뜸

- articleComments의 GET(= <)을 클릭 시 해단 article에 달린 댓글들의 속성이 뜸

- 댓글이 7개면 아래와 같이 뜨고, 속성이 같이 보인다.