상똥이의 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개면 아래와 같이 뜨고, 속성이 같이 보인다.
'프로젝트 > 게시판 만들기' 카테고리의 다른 글
[Board Project] 12. API 구현 (Query DSL, Spring data, JPA) (0) | 2023.10.21 |
---|---|
[Board Project] 11. API 테스트 정의 (0) | 2023.10.16 |
[Board Project] 9. 데이터베이스 접근 로직 구현 (0) | 2023.10.12 |
[Board Project] 8. 메타데이터 공동 필드 추출하기 (0) | 2023.10.11 |
[Board Project] 7. 데이터베이스 연결 테스트 (JPA/ assertj) (2) | 2023.10.09 |