본문 바로가기

SPRING

REST API란?

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/