'23.12.04(월) 웹 풀 사이클 데브코스 TIL
REST API는 무엇인가?
API(Application Programming Interface)
응용 프로그램 프로그래밍 인터페이스
응용프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. - 위키백과
Interface
그럼 인터페이스란 무엇인가?
서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다. - 위키백과
Inter - "사이의", "상호 간의"
face - "마주하다", "소통하다"
웹 개발의 면에서 생각하면
사용자와 프로그램, 두 가지 장치, 브라우저와 서버 등
데이터 연산을 요청하는 정보 요청 주체와 정보 전달 주체를 연결하는 매개체 역할을 의미한다.
위를 참고하면
API는 "응용프로그램에서 다양한 기능을 이용할 수 있게 해주는 매개체" 정도로 생각해 볼 수 있다.
일례로, 지하철 노선도 앱 개발자는, API를 통해 교통공사의 DB에 접근해 정보를 요청해 전달받아 화면에 보여준다.
지난 학습에서 HTTP에 대해 간단하게 배웠다.
HTTP는 웹 상에서 원활한 통신을 위해 정한 메시지의 규약으로
웹에서 사용할 수 있는 API는 HTTP를 따라 보내도록 발전하였고,
HTTP의 조건을 잘 따르는 REST API 라는 개념이 탄생했다.
REST(REpresentational State Transfer) API
REST라는 아키텍쳐를 사용하여 설계한 API 라는 뜻으로,
HTTP의 규약을 잘 따르는 것이 이에 해당한다고 볼 수 있다.
HTTP 프로토콜 템플릿 중 Body에 연산을 요청하려는 데이터와 목적을 담는다.
대문자 X, 소문자 O
언더바(_) X, 하이픈(-) O
마지막에 “/” 포함 X
✨ 행위 포함 X = 목적을 포함하지 않는다.
→ POST, GET 등의 목적은 이미 API에 정의되어있으므로 표기에포함하지 않는다.
파일 확장자 포함 X
복수형을 쓴다.
URL주소를 통해 요청을 전송하려는 위치와 요청 내용을 담는다.
“GET” + products
http://localhost:8888/products
“GET” + product
http://localhost:8888/products/[상품id]
“PUT” + product
http://localhost:8888/products/[상품id]
복수형 표현을 사용하는 이유
product/[상품id]
개별 상품이기 때문에 product라는 단수를 사용할 수도 있지만,
products
라는 복수형 표현을 사용하여
products
라는 단어는 "상품"에 대한 모든 요청을 담당한다는 통일성을 부여할 수 있다.
REST, RESTful, API 등 이리저리 들어본 단어들의 머리 속의 모호한 정의들을 바로잡을 수 있는 시간이었다.
REST API에 대해 간단하게 이해할 수 있는 좋은 시간이었고, 얼른 직접 API를 만들면서 사용해보고 싶다!