개발자 또는 엔지니어가 되어 REST API를 자주 만나게 되었다.
대체 REST API란 무엇일까?
왜 이것을 쓰는지 알아볼 필요가 있어 찾아보고 이곳에 정리해본다.
Application Programming Interface
1. 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 접속 규약을 뜻한다.
2. "애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다."
(출처: 아마존)
3. API는 어떤 서버의 특정한 부분에 접속해서 그 안에 있는 데이터와 서비스를 이용할 수 있게 해주는 소프트웨어 도구
다른 시스템과 통신하기 위해서 규칙을 정의해주는 것을 API라고 한다.
따라서, 다른 시스템과 통신하기 위해서는 API를 사용한다.
비유를 하자면, API는 레스토랑의 웨이터라고 한다. 손님이 웨이터에게 메뉴를 보여주고 손님이 메뉴를 주문하면 주문한 메뉴를 주방에 전달한다. 주문한 음식이 나오면 그것을 손님에게 가져다준다. 이러한 역할들을 하는 것이 API라고 한다.
Representational State Transfer
직역하자면 '표현 상태 전송(교환?)'이라고 할 수 있다.
자원을 이름으로 구분하여 해당 자원의 상태정보를 주고 받는 모든 것을 의미한다.
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.
장점)
1. 의도하는 바를 명확하게 파악하기 용이하다.
2. 서버와 클라이언트를 명확하게 분리한다.
단점)
1. HTTP Method 형태(POST, GET, PUT, DELETE)가 제한적이다.
2. 표준이 정해져 있지 않다.
(2023/07/21)
#. 추가적으로, 알면 API를 이해하는데 도움이 될 것
1) open API
#. API와 REST API에 대해서 간단히 알아보았다. 추후 추가할 내용이나 수정할 내용이 있다면 수정해보도록 하자.
#. SOAP API 추가 예정(2023.08.31)
잘 봤습니다. 좋은 글 감사합니다.