HTTP와 REST API이란 무엇인가

Romy·2023년 5월 29일
0

cs

목록 보기
4/7
post-custom-banner

HTTP API 와 REST API는 사실 거의 같은 의미로 사용됩니다. 그런데 디테일하게 들어가면 차이가 존재합니다. HTTP API는 상당히 넓은 의미로 사용됩니다. 반면에 REST API는 HTTP API에 여러가지 제약 조건이 추가 됩니다.



HTTP API

  • HTTP (Hyper Text Transfer Protocol)

HTTP는 웹 환경에서 정보를 주고받기 위한 프로토콜입니다. HTTP API는 HTTP라는 통신 규칙으로 소통하는 API 입니다. 즉, HTTP를 사용해서 서로 정해둔 스펙으로 데이터를 주고 받으며 통신하는 것을 말합니다.

💡 HTTP를 사용하지 않는 API가 있나?
  • 저사양/저전력 환경에 적합한 MQTT, CoAp 프로토콜을 사용하는 API 가 존재합니다.
  • 예시로, IoT 어플리케이션을 개발할 때 IoT 애플리케이션과 통신할 수 있는 API를 말할 수 있습니다.


REST API

  • REST (Representational State Transfer)

REST란 네트워크 아키텍처 스타일입니다. 아키텍처 스타일이란, 네트워크 자원을 정의하고 처리하는 방법 전반을 말합니다. REST API는 자원의 표현으로 상태를 전달하는 아키텍처로 만든 API입니다. REST는 HTTP를 잘 활용하기 위한 원칙이 존재합니다. REST API는 REST의 원칙을 준수해서 만든 API입니다.

💡 REST API를 설계하는 중심 규칙은 무엇이 있나?
  • 자원 : URI로 자원을 표현해야합니다.
  • 행위 : 자원에 대한 행위는 HTTP Method로 표현되어 합니다.
  • 표현 : 응답 자원의 상태를 JSON, XML 등의 형태로 나타내야 합니다.


RESTful API Guide

확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 합니다.

1️⃣ 정보의 자원을 표현

document, collection, store, controller 4가지 방식으로 자원을 표현할 수 있습니다. document란, 1개의 객체를 나타내는 것으로 일반적으로 단수명사로 나타나지며 collection 뒤에 나타나게 됩니다. collection은 resource(document)들의 집합입니다. 일반적으로 복수 명사를 사용합니다.

GET /sports/soccer/players/13

위와 같은 URI를 보면 sports, players는 collection으로 나타나지고 있고 soccer, 13은 도큐멘트로 URI를 구성하고 있습니다.

+) 그 외 자원 표현 방법들

  • 명사형을 사용합니다.
  • 소문자를 사용합니다.
  • 밑줄 ( _ ) 은 사용하지 않습니다.
  • 하이픈 ( - )을 사용합니다.

2️⃣ 자원에 대한 행위 표현

GET /members/delete/1  (X)
DELETE /members/1.     (O)

URI는 자원을 표현하는데 중점을 두어야합니다. insert, delete와 같이 URI에 HTTP Method가 들어가면 안 됩니다. 또한, 행위에 대한 표현도 들어가서는 안 됩니다. 행위를 표현하고자 할 때는 HTTP Method (GET, POST, PUT, DELETE) 로 표현합니다.

3️⃣ 경로에 대한 표현

/university/sookmyung/ (x)
/university/sookmyung (o)

슬래시 구분자 ( / ) 는 계층 관계를 나타내는데 사용합니다. URL 마지막에는 슬래시 구분자를 포함하지 않습니다. 또한, 경로 부분 중 변하는 부분은 유일한 값으로 대체합니다. (ex. id 값)



참고

API, HTTP API, REST API 차이
REST API란, HTTP Method

profile
👩‍💻 IT Engineering
post-custom-banner

2개의 댓글

comment-user-thumbnail
2024년 3월 21일
  1. 경로에 대한 표현 예시 코드가 잘못 표현되어 있는 거 같아요!
1개의 답글