본문 바로가기

Back-end/SpringBoot

[Springboot] REST API 만들고 슬라이스 테스트하기 (feat. HAL Explorer 사용하기)

✅ Spring Data REST

  • Spring Data 안에 있는 부속 기능으로 API를 빠르게 만들기를 도와준다.
  • 엔티티와 리포지토리 클래스를 이용해서 빠르게 RESTful한 API를 만들 수 있다.
  • 기본적인 데이터는 Data REST로 하고, 복잡한 데이터 전달은 별도로 만들어서 보충할 수 있다.

API란 (application programming interface)

●  API는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다.
● API란 음식점의 점원같은 것이다.
● API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다.

 

REST란

●  HTTP URI(Uniform Resource Identifier)를 통해 자원을 명시
●  HTTP Method(POST, GET, PUT, DELETE 등)을 통해 해당 자원에 대한 CRUD Operation을 적용하는것을 의미

 

 

✅ Springboot  Restful Api 설정

  1. start.spring.io에 가서 Rest Repositories와 Rest Repositories HAL Explorer 디펜던시를 가져온다.
    (HAL Explorer는 우리가 만든 API를 간단하게 테스트하기 위해 받는다.
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
    implementation 'org.springframework.data:spring-data-rest-hal-explorer'
  2. 그리고  build.gradle에 추가해준 후 refresh 해준다
  3. application.yaml 파일에 옵션을 추가해준다.
    data.rest:
     base-path: /api
     detection-strategy: annotated

  4. detection-strategy의 기본값은 default이다.


  5. Repository에 어노테이션 추가 
    - detection-strategy 옵션을 annotated로 설정한 경우, 레포지토리에 @RepositoryRestResource 어노테이션을 추가해준다.

 

✅ HAL Explorer 사용하기

서버를 실행하고 패스로 가면 HAL Explorer 화면이 뜬다.
예를 들어 localhost:8080/api이다.

 

HTTP Request 부분에 있는 버튼은 각각 select, create, update, delete를 의미한다.
select(초록색) 클릭 시 모달창이 뜨는데, 아무것도 입력하지 않은 상태로 Go를 클릭하면 전체 데이터를 볼 수 있다.

 

✏️공부한 내용

Restful 원칙을 지키고 간단한 기능의 API를 만드는데는 좋은거같다.

하지만 다양한 View의 요구사항을 만족시키는 Http api를 만드는데는 Spring MVC를 사용하는것이 빠르다.

장점

Restful 원칙을 지킨 Restful API를 빠르게 만들 수 있다.
Restful API이기 때문에, 연관된 API 정보를 요청자가 알 수 있으므로, API 문서를 열지 않아도 된다.

단점

데이터를 추가하고, 연관관계를 만들어야 한다. API를 2번 호출해야하는 불편함이 있다. API 사용자 입장에서 불편할 수도 있다.
다양한 view 의 요청을 대응하기 힘들다. 고정된 Restful 형식을 가지기 때문에, 따로 설정을 바꿔야 한다. 따로 설정을 바꾸는 것보다 MVC 프레임워크를 사용하는 것이 더 수월하다.