Network & AWS
[Restful API] 간단하게 정리
Haksae
2022. 1. 31. 00:09
예전에 REST에 대해서 퍼왔던 글이 있는데, 이 글에 덧붙여서 RESTful API를 정리해보려한다.
0. [REST API]
REST 기반으로 서비스 API를 구현한 것으로,
서버 데이터를 구조적으로 사용하기 위한 API 디자인을 REST API라고 한다.
1. [RESTful]이란
- RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.
- ‘REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.
- RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다.
- 즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.
2. RESTful의 목적
- 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
- RESTful한 API를 구현하는 근본적인 목적이 성능 향상에 있는 것이 아니라 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 동기이니, 성능이 중요한 상황에서는 굳이 RESTful한 API를 구현할 필요는 없다.
3. 클라이언트측과 서버측의 REST API
1) 클라이언트 측 REST API
- GET - 조회하다
- POST - 생성하다
- PUT - 갱신하다
- DELETE - 삭제하다
2) 서버측 REST API
- 클라이언트측의 요청에 대한 서버의 응답은 두 부분으로 구분 (헤더와 바디)
- 바디는 Json 타입으로 응답하는 것이다. 헤더의 상태코드 (Status Code)를 잘 사용하면 다양한 정보를 담아 클라이언트에게 전송할 수 있다.
- 응답 헤더의 상태코드는 세 자리 정수로 되어있는데 크게 세 분류가 있다.
- 2XX - 성공
- 201 - Created POST 메소드로 요청시 서버쪽에서 자원 생성에 성공하면 201 코드를 클라이언트로 응답
- 204 - No Content 서버에서 성공했는데 응답할 바디가 없는 경우
- 4XX - 클라이언트 요청 에러
- 401 - Unauthorized 인증이 필요한 API에 대해 인증되지 않은 요청일 경우
- 403 - Fobbiden 401과 유사하면서 사용 방법에 대한 해석은 개발자마다 다르다
- 404 - Not found 조회할 자원이 서버에 없는 경우 응답하는 코드
- 409 - Conflict 클라이언트에서 POST메소드로 서버에서 자원 추가를 요청했을 때 이미 그 자원이 서버에 있어서 자원을 추가할 수 없는 경우.
- 5XX - 서버 응답 에러
- 503 - Service Unavailable 서버가 과부하 상태 / 점검 상태 일시적으로 요청 처리 불가
- 504 - Gateway Timeout 서버를 통하는 게이트웨이에 문제 발생하여 시간 초과
- 505 - HTTP Version Not Supported 해당 HTTP 버전에서는 지원되지 않는 요청임을 알림
- 2XX - 성공