HTTP API 와 REST API는 사실 거의 같은 의미로 사용됩니다. 그런데 디테일하게 들어가면 차이가 존재합니다. HTTP API는 상당히 넓은 의미로 사용됩니다. 반면에 REST API는 HTTP API에 여러가지 제약 조건이 추가 됩니다.
HTTP는 웹 환경에서 정보를 주고받기 위한 프로토콜입니다. HTTP API
는 HTTP라는 통신 규칙으로 소통하는 API 입니다. 즉, HTTP를 사용해서 서로 정해둔 스펙으로 데이터를 주고 받으며 통신하는 것을 말합니다.
REST란 네트워크 아키텍처 스타일입니다. 아키텍처 스타일이란, 네트워크 자원을 정의하고 처리하는 방법 전반을 말합니다. REST API는 자원의 표현으로 상태를 전달하는 아키텍처로 만든 API입니다. REST는 HTTP를 잘 활용하기 위한 원칙이 존재합니다. REST API는 REST의 원칙을 준수해서 만든 API입니다.
💡 REST API를 설계하는 중심 규칙은 무엇이 있나?확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 합니다.
document, collection, store, controller 4가지 방식으로 자원을 표현할 수 있습니다. document
란, 1개의 객체를 나타내는 것으로 일반적으로 단수명사로 나타나지며 collection 뒤에 나타나게 됩니다. collection
은 resource(document)들의 집합입니다. 일반적으로 복수 명사를 사용합니다.
GET /sports/soccer/players/13
위와 같은 URI를 보면 sports, players는 collection으로 나타나지고 있고 soccer, 13은 도큐멘트로 URI를 구성하고 있습니다.
+) 그 외 자원 표현 방법들
GET /members/delete/1 (X)
DELETE /members/1. (O)
URI는 자원을 표현하는데 중점을 두어야합니다. insert, delete와 같이 URI에 HTTP Method가 들어가면 안 됩니다. 또한, 행위에 대한 표현도 들어가서는 안 됩니다. 행위를 표현하고자 할 때는 HTTP Method (GET, POST, PUT, DELETE) 로 표현합니다.
/university/sookmyung/ (x)
/university/sookmyung (o)
슬래시 구분자 ( / ) 는 계층 관계를 나타내는데 사용합니다. URL 마지막에는 슬래시 구분자를 포함하지 않습니다. 또한, 경로 부분 중 변하는 부분은 유일한 값으로 대체합니다. (ex. id 값)