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
- HTTP Method와 데이터베이스의 CRUD는 각각 대응한다
- 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 문서의 활용
- 프론트엔드 개발자와 백엔드 개발자 모두 REST API 문서를 읽고 이해할 수 있어야 한다
- 백엔드 개발자는 프론트엔드 등의 Client를 위해 REST API 문서를 작성할 수 있어야 한다
- REST API 문서가 잘 작성될 수록 Communication 비용이 줄어든다
728x90
'코드프레소 체험단 > Spring Boot를 활용합 웹 개발' 카테고리의 다른 글
[Spring Boot 웹 개발 초급] 커리큘럼 및 Data Access Layer의 개념 (0) | 2022.03.02 |
---|---|
[Spring Boot 웹 개발 입문] Spring Service, Spring Bean의 개념과 의존성 주입 (0) | 2022.02.06 |
[Spring Boot 웹 개발 입문] Response 데이터와 JSON 포맷 (0) | 2022.02.03 |
[Spring Boot 웹 개발 입문] Request 파라미터의 이해 (0) | 2022.02.03 |
[Spring Boot 웹 개발 입문] RequestMapping과 URI, HTTP API의 개념 (0) | 2022.02.03 |
댓글