🔑 REST API 란 무엇인가?
- REST API는 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다.
- 알아보기 쉽고 잘 작성된 메뉴판이 필요, 이 역할을 API가 수행해야 하므로 모두가 잘 알아볼 수 있도록 작성
🔑 REST 성숙도 모델 4단계 (0~3단계)
-
REST 성숙도 모델 - 0단계
- 단순히 HTTP 프로토콜을 사용하기만 해도 된다.
- 물론 이경우 해당 API를 REST API라고 할 수 없다.
- 0단계는 REST API를 작성하기 위한 기본 단계
-
REST 성숙도 모델 - 1단계
- 1단계에서는 개별 리소스와의 통신을 준수
- 웹에서 사용되는 모든 데이터나 자원을 HTTP URI로 표현한다.
- 개별 리소스에 맞는 엔드포인트를 사용해야한다.
- 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 한다.
-
REST 성숙도 모델 - 2단계
- CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점을 둔다.

- GET 메서드는 body를 가지지 않기 때문에 query parameter를 사용하여 리소스를 전달
- POST요청에 대한 응답은 새롭게 생성된 리소스를 보내주기 때문에,
응답 코드는 201 Created
로 명확하게 작성한다.
- 관련 리소스 클라이언트가 Location 헤더에 작성된 URI를 통해 확인할 수 있도록 하면
완벽하게 REST 성숙도 모델의 2단계를 충족한 것
-
REST 성숙도 모델 - 3단계
- HATEOAS(Hypertext As The Engine Of Application State)라는
약어로 표현되는 하이퍼미디어 컨트롤을 적용한다.
- 3단계의 요청은 2단계와 동일
- 응답에는 리소스의 URI를 포함한 링크 요소를 삽입하여 작성한다.
- 응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는 것이 3단계의 핵심
실제로 엄밀하게 3단계까지 지키기 어렵기 때문에 2단계까지만 적용해도 좋은 API 디자인이라고 볼 수 있고,
이런 경우를 HTTP API 라고도 부른다.
🔑 Open API 와 API Key
-
Open API
- 오픈이라는 키워드가 있다고 해서 무제한으로 이용할 수 있다는 의미는 아니다.
- API마다 정해진 이용 수칙이 있고, 그 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있다.
-
API Key
- API를 이용하기 위해선 API Key가 필요하다.
- 서버의 문을 여는 열쇠
- API Key가 필요한 경우 로그인한 이용자에게 자원에 접근할 수 있는 권한을
API Key의 형태로 제공하고, 데이터를 요청할 때 API Key를 같이 전달해야 원하는 응답을 받을 수 있다.