본문 바로가기
코드프레소 체험단/Spring Boot를 활용합 웹 개발

[Spring Boot 웹 개발 입문] HTTP 메소드와 Request Body, REST API 문서

by 의정부핵꿀밤 2022. 2. 3.
728x90

< HTTP Method의 이해 >

 

HTTP

  • Hyepr Text(웹 페이지)를 컴퓨터가 주고 받기 위한 규약
  • 컴퓨터 간의 데이터를 주고 받기 위해서는 명확한 약속이 필요하다
  • IETF, W3C 등의 국제 표준 단체에서 HTTP에 대한 표준을 정하여 배포한다
  • 모든 브라우저 웹 서버 등은 HTTP 표준에 따라 개발되고 통신한다

 

 

 

HTTP Method

  • HTTP 규약 중 하나로, 특정 자원에 대해 수행하는 행동의 종류를 명시한다
    • 자원의 생성, 조회, 수정, 삭제, 일부 수정 등..
  • HTTP Method를 사용하면 단일 URI로 다양한 행동을 정의할 수 있다
  • 주로 사용되는 HTTP Method
    • GET (자원의 조회)
    • POST (자원의 생성)
    • PUT (자원의 수정)
    • DELETE (자원의 삭제)

 

 

 

HTTP Method와 데이터베이스 CRUD

DB의 4가지 기본 동작

  • HTTP Method와 데이터베이스의 CRUD는 각각 대응한다

 

단일 URI로 다양한 행동 정의

  • HTTP Method를 사용하면 단일 URI로 다양한 행동을 정의할 수 있다
  • HTTP Method는 규약이지 규칙이 아니다
    • GET Method로 자원을 삭제해도 에러가 발생하지는 않는다
    • 하지만 Best Practice에 맞게 설계하는 것이 권장된다

 

 

 

HTTP Method의 구현

  • @RequestMapping의 요소로 Method를 명시한다
    • default로 GET Method가 적용된다
  • 요청된 HTTP Method에 따라 해당 Controller의 Java 메소드를 호출한다
  • 각 Java 메소드에서는 HTTP Method에 해당하는 처리를 수행하도록 설계하는 것이 권장된다

 

 

 

HTTP Method를 위한 간소화된 Annotation

 

 

 

정리!

  • HTTP Method는 HTTP 규약 중 하나로, 특정 자원에 대해 수행하는 행동의 종류를 명시한다
  • POST, GET, PUT, DELETE 4개의 HTTP Method가 주로 사용된다
    • 각각 DB의 Create, Read, Update, Delete의 행동과 대응된다
  • HTTP Method를 활용하면 단일한 URI에 대해 다양한 행동을 하는 REST API를 설계 가능하다
    • GET /post는 글 조회, POST /post는 글 저장
  • Spring에서는 RequestMapping의 요소나 @GetMapping 등의 Annotation으로 HTTP Method에 따른 호출되는 Java 메소드를 결정한다

 


< Request Body의 이해 >

 

Request Data

  • Client가 서버에 요청 시 전달하는 추가적인 Data
  • Query String과 Path Parameter로 전달하는 방식이다
  • 크기가 큰 데이터를 보내기 위해서는 다른 방식이 필요하다
    • 게시판 글, 작성된 Form 데이터 등..

 

 

 

Request Body

  • 일반적으로 데이터를 저장 및 수정하는 POST, PUT Method에서 사용된다
    • GET, DELETE는 Query String, Path Param을 주로 사용한다
  • Request Body에 다양한 포맷의 데이터 전송이 가능하다
    • JSON 데이터 형식이 주로 사용된다
  • Client에서는 JSON 데이터를 전송하고, Spring에서는 JSON 데이터를 Java 객체 파라미터로 저장한다

 

 

 

Request Body의 활용

  • Postman에서 JSON 데이터를 Request Body로 전송한다

 


< REST API 문서의 활용 >

 

API 문서화

  • API는 정보를 주고 받기 위한 방법/약속 이다
  • API를 사용하기 위해서는 사용 방법을 알아야 한다
  • API 문서는 API를 사용하는 방법을 명세한 문서이다

 

 

 

REST API 문서화

  • 프론트엔드에서 호출하기 위한 REST API의 정보가 명세된 문서이다
    • 백엔드 개발자 주도로 프론트 엔드 개발자가 함께 설계 (주로 백엔드 개발자가 설계한다)
    • 프론트엔드 개발자는 약속된 REST API 문서에 의존하여 프론트엔드를 개발한다
  • 프론트엔드 등 Client에서 호출하고 활용하는데 어려움이 없도록 상세하게 작성되어야 한다

 

 

 

REST API 문서가 담고 있어야 하는 정보

  • REST API 설명
  • URI
  • HTTP Method
  • Request 파라미터 (필수 파라미터 & 선택 파라미터)
  • Response 데이터 (필수 응답 데이터 & 선택 응답 데이터)
  • 가능한 에러 코드 및 대응 방법
  • 호출 예시

 

 

REST API 문서의 활용

실습 API 문서 예시

  • 프론트엔드 개발자와 백엔드 개발자 모두 REST API 문서를 읽고 이해할 수 있어야 한다
  • 백엔드 개발자는 프론트엔드 등의 Client를 위해 REST API 문서를 작성할 수 있어야 한다
  • REST API 문서가 잘 작성될 수록 Communication 비용이 줄어든다
728x90

댓글