웹프로그래밍_끄적이기

REST API

깊음위에 2023. 6. 2. 12:29
반응형

REST API 란?

REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 


1) 엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음.

네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다.


2) 보다 범용적인 의미

웹 상의 자료를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다. 

필딩의 REST 아키텍처 형식을 따르면 HTTP나 WWW가 아닌 아주 커다란 소프트웨어 시스템을 설계하는 것도 가능하다. 또한, 리모트 프로시저 콜 대신에 간단한 XML과 HTTP 인터페이스를 이용해 설계하는 것도 가능하다.

두가지 개념이 충돌하게 되는데, 필딩의 REST 원리를 완전히 따르고 있는 시스템을 RESTful로 구분해서 부르기도 한다. (하지만 대부분, 그냥 섞어쓴다.)


REST 아키텍처에 적용되는 6가지 제한 조건

인터페이스 일관성 : 일관적인 인터페이스로 분리되어야 한다
무상태(Stateless): 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안 된다
캐시 처리 가능(Cacheable): WWW에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다.
잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability와 성능을 향상시킨다.
계층화(Layered System): 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다.
Code on demand (optional) - 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
클라이언트/서버 구조 : 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.


REST API는 웹 서비스를 개발하고 구축할 때 사용된다. 예를 들면, 온라인 쇼핑몰 웹사이트를 만들려면 REST API를 사용하여 다음과 같은 작업을 수행할 수 있다.

  • 제품 목록을 가져오기 위한 GET 요청
  • 제품 세부 정보를 가져오기 위한 GET 요청
  • 새 제품을 추가하기 위한 POST 요청
  • 제품 정보를 업데이트하기 위한 PUT 또는 PATCH 요청
  • 제품을 삭제하기 위한 DELETE 요청

이와 같은 REST API 호출을 사용하여 온라인 쇼핑몰 웹사이트에서 제품 정보를 표시하고 관리할 수 있다.

 

REST API  사용 방법

여기 REST API 예제가 있습니다. (Written by AI)

예를 들어, 다음과 같은 REST API가 있다고 가정해 봅시다.

bash복사
GET /products

이 API를 호출하면 제품 목록을 반환합니다. 이 API를 호출하려면 웹 클라이언트에서 다음과 같은 HTTP 요청을 보내야 합니다.

vbnet복사
GET /products HTTP/1.1 Host: example.com

서버는 요청을 받으면 데이터베이스에서 제품 목록을 가져와서 JSON 형식으로 응답합니다.

css복사
HTTP/1.1 200 OK Content-Type: application/json [ { "id": 1, "name": "Product 1", "description": "This is product 1" }, { "id": 2, "name": "Product 2", "description": "This is product 2" } ]

이와 같은 REST API 호출을 사용하여 온라인 쇼핑몰 웹사이트에서 제품 정보를 표시하고 관리할 수 있습니다.

다른 예제를 보여드리겠습니다.

예를 들어, 다음과 같은 REST API가 있다고 가정해 봅시다.

bash복사
POST /products

이 API를 호출하면 새 제품을 추가합니다. 이 API를 호출하려면 웹 클라이언트에서 다음과 같은 HTTP 요청을 보내야 합니다.

bash복사
POST /products HTTP/1.1 Host: example.com Content-Type: application/json { "name": "Product 3", "description": "This is product 3" }

서버는 요청을 받으면 데이터베이스에 새 제품을 추가하고 추가된 제품의 ID와 함께 JSON 형식으로 응답합니다.

css복사
HTTP/1.1 201 Created Content-Type: application/json { "id": 3, "name": "Product 3", "description": "This is product 3" }

이와 같은 REST API 호출을 사용하여 온라인 쇼핑몰 웹사이트에서 제품 정보를 추가하고 관리할 수 있습니다.

 

다양한 REST API 예제를 보여드리겠습니다.

  1. GET /users
    vbnet복사
    GET /users HTTP/1.1 Host: example.com
    서버는 데이터베이스에서 사용자 목록을 가져와서 JSON 형식으로 응답합니다.
  2. css복사
    HTTP/1.1 200 OK Content-Type: application/json [ { "id": 1, "name": "User 1", "email": "user1@example.com" }, { "id": 2, "name": "User 2", "email": "user2@example.com" } ]
  3. 이 API를 호출하면 사용자 목록을 반환합니다. 예를 들어, 다음과 같은 HTTP 요청을 보내면,
  4. GET /users/{id}
    vbnet복사
    GET /users/1 HTTP/1.1 Host: example.com
    서버는 데이터베이스에서 ID가 1인 사용자의 정보를 가져와서 JSON 형식으로 응답합니다.
  5. css복사
    HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "name": "User 1", "email": "user1@example.com" }
  6. 이 API를 호출하면 특정 사용자의 정보를 반환합니다. 예를 들어, 다음과 같은 HTTP 요청을 보내면,
  7. POST /users
    bash복사
    POST /users HTTP/1.1 Host: example.com Content-Type: application/json { "name": "User 3", "email": "user3@example.com" }
    서버는 데이터베이스에 새 사용자를 추가하고 추가된 사용자의 ID와 함께 JSON 형식으로 응답합니다.
  8. css복사
    HTTP/1.1 201 Created Content-Type: application/json { "id": 3, "name": "User 3", "email": "user3@example.com" }
  9. 이 API를 호출하면 새 사용자를 추가합니다. 예를 들어, 다음과 같은 HTTP 요청을 보내면,
  10. PUT /users/{id}
    bash복사
    PUT /users/3 HTTP/1.1 Host: example.com Content-Type: application/json { "name": "Updated User 3", "email": "updated_user3@example.com" }
    서버는 데이터베이스에서 ID가 3인 사용자의 정보를 업데이트하고 업데이트된 사용자의 정보를 JSON 형식으로 응답합니다.
  11. css복사
    HTTP/1.1 200 OK Content-Type: application/json { "id": 3, "name": "Updated User 3", "email": "updated_user3@example.com" }
  12. 이 API를 호출하면 특정 사용자의 정보를 업데이트합니다. 예를 들어, 다음과 같은 HTTP 요청을 보내면,
  13. DELETE /users/{id}
    bash복사
    DELETE /users/3 HTTP/1.1 Host: example.com
    서버는 데이터베이스에서 ID가 3인 사용자를 삭제합니다.
  14. 이 API를 호출하면 특정 사용자를 삭제합니다. 예를 들어, 다음과 같은 HTTP 요청을 보내면,

이와 같은 REST API 호출을 사용하여 사용자 정보를 관리할 수 있습니다.


마무리

REST API 는 REST API를 지원하는 네트워크기반의 장비의 관리를 목적로서도 사용될 수 있다. 다양한 용도로 여러분야에서 쓰일 수 있으니 한번쯤 사용해 보고 익혀보자,

반응형