REST API

cjs0097·2022년 6월 18일
0
post-thumbnail
🔑 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를 같이 전달해야 원하는 응답을 받을 수 있다.
profile
코딩, 널 가지러 왔다!

0개의 댓글