REST란?
HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것
웹에 존재하는 모든 자원 (이미지, 동영상, DB..)에 고유한 URI를 부여해 활용하는 것
HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식
어떤 자원에 대해 CRUD 연산을 수행하기 위해 URI로 요청을 보내는 것
Create - post
Read - get
Update - put(전체 수정), patch(일부 수정)
Delete - delete
REST 구성 요소
1. 자원 (Resource): URI
- 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 의존한다.
2. 행위 (Verb): HTTP Method
- HTTP 프로토콜의 Method를 사용한다.
- GET, POST, PUT, DELETE
3. 표현 (Representation of Resource)
- 클라이언트가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
- REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 가지 형태로 나타낸다. (보통 JSON, XML)
REST API란?
API (Application Programming Interface)
- 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환하도록 하는 것
REST API
HTTP를 이용해서 기계들이 통신을 할 때 HTTP가 가지고 있는 기능을 최대한 활용해서 통신하는 방법
HTTP 프로토콜의 장점을 살릴 수 있는 네트워크 기반의 아키텍처
REST API 권고사항
리소스를 식별할 때는 uri를 통해서 식별
어떤 행위를 할 때는 http의 고유한 메서드를 이용
결과를 알려줄 때는 응답코드를 정확하게 사용
응답 상태 코드
200번대
클라이언트가 요청한 작업을 서버가 성공적으로 수행했다는 상태라는 것을 알려주는 코드
400번대
클라이언트가 서버에게 보낸 요청이 잘못된 경우 (프론트)
500번대
클라이언트가 아닌 서버에서 문제가 발생한 경우 (백)
참고
evan-moon.github.io/2020/03/15/about-http-status-code/
관련 어노테이션
@RestController
순수한 데이터를 반환하는 형태로 다양한 포맷의 데이터 전송 가능
JSON, XML, 문자열 등
@RequestBody
JSON 데이터를 원하는 타입으로 반환할 때 사용
출처
gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
evan-moon.github.io/2020/04/07/about-restful-api/
'SPRING' 카테고리의 다른 글
Tomcat War 파일로 배포하기 (0) | 2020.11.21 |
---|---|
@Param 어노테이션 언제 쓰는지? (0) | 2020.10.25 |
스프링 <form> 태그 사용법 (0) | 2020.10.16 |
mybatis 환경설정 : <typeAliases> (0) | 2020.10.15 |
스프링 유효성 검증 : @Valid 어노테이션 (0) | 2020.10.15 |