RESET API란?
REST API는 Representational State Transfer API의 약자로 Roy Fileding이란 사람의 박사학위 논문에서 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로 처음 소개 되었습니다.
REST API는 웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고 HTTP 프로토콜을 통해서 요청과 응답을 정의하는 방식을 의미합니다. 예를 들어 설명하자면 식당의 메뉴판을 생각해 보세요. 식당의 메뉴판이 알아보기 쉽고 잘 작성되어 있을수록 메뉴판의 역할을 잘 수행할 수 있습니다. 이러한 메뉴판이 REST API가 되는 것이고 이를 더욱 좋게 디자인하는 것이 중요합니다.
원칙
REST API를 설계할 때는 아래와 같은 원칙을 따라야합니다.
- URI는 자원을 나타내야 한다.
- 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)로 표현한다.
- 메시지는 자원의 상태를 전달한다.
예시!!
좋은 REST API의 예시를 들어 설명해 보겠습니다!. 아래 예시는 사용자 정보를 가져오고 생성하는 API를 제공하는 간단한 회원 가입 서비스입니다.
1. 사용자 정보 가져오기 API
- 자원: 사용자 정보(User Info)
- URI: /users/{user_id}
- HTTP 메서드: GET
URI에서 {user_id} 부분은 가져올 사용자의 ID를 나타냅니다. 따라서, 클라이언트는 /users/1234와 같은 식으로 URI를 구성하여 특정 사용자 정보를 가져올 수 있습니다.
HTTP/1.1 200 OK
Content-Type: application/json
{
"user_id": 1234,
"name": "YUNSU Keum",
"email": "keumyunsu@example.com"
}
이 API는 다음과 같은 응답을 반환합니다.
2. 사용자 정보 생성 API
- 자원: 사용자 정보(User Info)
- URI: /users
- HTTP 메서드: POST
이 API는 클라이언트에서 새로운 사용자 정보를 제공하면, 서버에서는 새로운 사용자를 생성하고, 생성된 사용자 정보와 함께 성공적인 응답을 반환합니다.
<요청>
POST /users HTTP/1.1
Content-Type: application/json
{
"name": "YUNSU KEUM",
"email": "keumyunsu@example.com",
"password": "secret"
}
<응답>
HTTP/1.1 201 Created
Content-Type: application/json
{
"user_id": 5678,
"name": "KEUM YUNSU",
"email": "keumyunsu@example.com"
}
위 REST AIP가 좋은 이유를 정리해서 설명해 보겠습니다.
- URI는 자원을 명확하게 식별할 수 있도록 구성되어 있습니다. 사용자 정보를 가져오는 API는 /users/{user_id}와 같이 구성되어 있으며, 사용자 정보를 생성하는 API는 /users와 같이 구성되어 있습니다.
- HTTP 메서드는 자원에 대한 CRUD(Create, Read, Update, Delete) 동작을 나타내는 데 사용되었습니다. 사용자 정보를 가져오는 API는 GET 메서드를 사용하며, 사용자 정보를 생성하는 API는 POST 메소드를 사용합니다.
- 응답은 JSON 형식으로 반환되며, HTTP 상태 코드와 함께 전송됩니다. 응답은 클라이언트가 요청한 자원에 대한 적절한 상태와 함께 반환되므로, 클라이언트는 응답을 쉽게 처리할 수 있습니다.
특징
그리고 REST API의 주요한 특징은 다음과 같습니다.
- 높은 호환성: REST API는 HTTP 프로토콜을 기반으로 하기 때문에, HTTP를 지원하는 모든 플랫폼에서 호환됩니다.
- 분리된 클라이언트/서버 구조: REST API는 클라이언트와 서버가 분리된 구조로 설계되어 있습니다.
- 캐시 가능: HTTP 프로토콜 특성상 캐시를 사용할 수 있어, 서버 부하 감소와 네트워크 병목 현상 감소 등의 이점을 가집니다.
- 자체 표현 구조: REST API에서는 XML, JSON 등의 다양한 데이터 포맷을 사용하여 데이터를 전송합니다
장점
마지막으로 REST API를 통해 얻을 수 있는 장점들입니다.
- 유연성: REST API는 다양한 플랫폼과 언어에서 사용할 수 있으며, 기존의 시스템과도 쉽게 연동할 수 있습니다.
- 가독성: REST API에서는 URI를 통해 자원을 표현하므로, 어떤 요청인지 쉽게 파악할 수 있습니다.
- 확장성: REST API는 새로운 자원을 쉽게 추가하고, 기존 자원의 기능을 확장할 수 있습니다.
'Http&Network' 카테고리의 다른 글
HTTP / HTTP Message란? (0) | 2023.05.08 |
---|