[Spring Boot] RestAPI란?

Use_Silver·2022년 2월 15일
0

Spring

목록 보기
7/10
post-thumbnail

RestAPI 개념

Rest란?

  • Representational State Transfer
  • 웹에 존재하는 모든 자원(이미지, 동영상, DB 등)에 고유한 URI(*)를 부여해 활용하는 것
    • URI
      특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)
    • URI vs URL
      URI는 식별자의 역할, URL은 주소를 가리키는 역할을 한다.

      두 번째 주소를 살펴보면 실제 index라는 파일은 웹서버에 존재하지 않는다. 따라서 실제 주소를 가리키는 URL은 아니지만, 서버 내부에서 index는 index.html을 가리키기 때문에 URI라고 볼 수 있다.
      참고
  • 하나의 URI는 고유한 리소스와 연결되며 리소스는 GET/POST/PUT/DELETE 등의 HTTP 메소드로 제어하자는 개념

Restful API란?

  • REST 특징을 지키면서 API를 제공하는 것을 의미
  • REST 형태로 사용자가 원하는 기능을 제공하는 것을 의미
  • 웹의 장점을 최대한 활용할 수 있는 아키텍처
  • REST 아키텍처는 Hypermedia API의 기본을 지키며 범용성을 보장한다.
  • REST 방식으로 서비스를 제공하는 것을 Restful 하다라고 표현함. 즉, REST의 원리를 따르는 시스템을 지칭하는 용어를 뜻함
    ex. 공공API

Rest API 중심 규칙

  • URI는 정보의 자원을 표현해야 함
    - 리소스명은 동사보다 명사를 사용
    ex. GET/members/delete/1 => GET/members/1 변경
    자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE등)로 표현해야 함
  • URI 사용자 - end user
  • 회원정보를 가져올 때에는 GET, 회원 추가시 행위 표현하고자 할 때 POST Method 사용
    • GET만으로 정보 요청 -> show 문구 불필요
      GET/members/show/1 (X) => GET/members/1 (O)
    • POST만으로 정보 저장 요청 -> insert 문구 불필요
      GET/members/insert/2 (X) => POST/members/2 (O)

URI 설계시 주의할 점

  • 슬래시 구분자(/)는 계층 관계를 나타내는 용도
  • URI 마지막 문자로 슬래시(/)를 포함하지 않음
  • 하이픈(-)은 가독성을 높이는데 사용
  • 밑줄(_)은 URI에 사용하지 않음
  • URI 경로에 소문자가 적합
  • 파일 확장자는 URI이 포함하지 않음

HTTP Method 종류 및 특징

  • Self-descriptiveness(자체 표현 구조)
    - REST의 또 다른 큰 특징 중 하나는 REST API 메시지만 보고도 이를 쉽게 이해 할 수 있는 자체 표현 구조로 되어있음
    • POST, GET, PUT, DELETE 4가지의 Method로 CRUD를 수행함
METHOD기능
POSTPOST를 통해 해당 URI를 요청하면 리소스를 생성 or수정
GETGET을 통해 해당 리소스를 조회
리소스를 조회하고 해당 도큐먼트에 대한 정보를 가져옴
PUT리소스를 수정 or 생성
DELETE리소스 삭제

Controller 어노테이션

  • @RestController
  • controller에서 응답하는 데이터가 JSON 형식으로 반환
  • @ResponseBody를 각 메소드마다 선언했던 것을 한번에 사용할 수 있게 해주는 설정과 흡사함
profile
과정은 힘들지만😨 성장은 즐겁습니다🎵

0개의 댓글