내가 정의해 본 REST API는 단순하게 말해서 'HTTP를 활용하여 CRUD를 실행하는 API'이다.
지금껏 REST API라고 생각하며 코드를 완성해왔지만 'REST API가 뭔가요?'라고 물었을 때 잘 대답하지 못할 것 같았다.
다시 한 번 정리를 해보는 시간을 가져본다.
◽ API(Application Programming Interface)란?
인터페이스는 어떤 장치끼리 정보를 교환하기위한 수단이나 방법이다.
응용프로그램 프로그래밍 인터페이스, 말 그대로 프로그램을 위한 인터페이스이다.
즉, API는 클라이언트나 서버같은 다른 프로그램끼리 데이터를 주고받는 방법, 규격이라고 정의내릴 수 있다.
◽ REST API란?
REST API는 일종의 아키텍쳐이며, 웹을 위한 네트워크 기반 아키텍쳐라 할 수 있다.
REST는 Representational State Transfer의 줄임말로, 직역하면 '대표적 상태 전달'인데 어떤 뜻인지 명확히 다가오진 않는다.
찾아보니 개인적으로 해석하는 경우가 많아 생략하며, 구성요소를 통해 이해하는게 더 빠르다고 생각된다.
REST API를 구성하는 요소는 총 3가지이다.
1. 자원(Resource): URI를 이용하여 자원을 표현한다.
2. 행위(Verb): HTTP 프로토콜의 Method로 행위를 표현한다.
3. 표현(Representation of Resource): 응답, 결과
즉, 존재하는 많은 자원들 중 URI를 부여하여 자원을 명시하고(=이름을 정해주고) ==> 1. 자원(Resource)
HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원에 대한 CRUD를 통해 ==> 2. 행위(Verb)
데이터를 처리하는 것이라고 ==> 3. 표현(Representation of Resource)
설명할 수 있을 것 같다.
◽ HTTP method의 종류
- GET, POST, PUT, DELETE가 가장 대표적으로 많이 사용되는 메소드이다.
- 그 외에는 HEAD, CONNECT, OPTIONS, TRACE, PATCH가 있다.
◽ URL 구성 시 주의점
참조 및 출처