[WEB] API

SEB_BE_43_yeori316·2023년 1월 27일

WEB

목록 보기
12/12

REST API

(Representational State Transfer - Application Programming Interface)

  • 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식

좋은 REST API를 디자인하는 방법

  • 리차드슨의 REST 성숙도 모델

  • 0단계 - 단순히 HTTP 프로토콜을 사용

  • 1단계 - URI 사용
    : 사용되는 모든 데이터나 자원(Resource)을 HTTP URI로 표현, 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용하여 요청, 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 한다

    : 어떤 리소스를 변화시키는지 혹은 어떤 응답이 제공되는지에 따라 각기 다른 엔드포인트를 사용하기 때문에, 적절한 엔드포인트를 작성하는 것이 중요

    : 엔드포인트 작성 시에는 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직 방법

    : 요청에 따른 응답으로 리소스를 전달할 때에도 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공/실패 여부를 반환해야 함

  • 2단계 - HTTP 메서드 원칙 준수
    : CRUD에 맞게 적절한 HTTP 메서드를 사용하고 그에 따른 응답 코드도 명확하게 작성되어야 함

    : 보통 2단계까지 적용을 하면 대체적으로 잘 작성된 API

    : 멱등성(idempotent : 연산을 여러 번 적용하더라도 결과 값이 달라지지 않는 성질)을 가지는 메서드를 잘 구분하여 사용해야 함

  • 3단계 - 하이퍼미디어 컨트롤 적용
    : 응답에 리소스의 URI를 포함한 링크 요소를 삽입하여 작성


Open API와 API Key

Open API

  • 글자 그대로 누구에게나 열려있는 API, 그러나 무제한으로 이용할 수 있는 건 아님, 기관이나 API마다 정해진 이용 수칙이 있고, 그 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있음.

API Key

  • API를 이용하기 위한 API Key,
  • 서버는 허가된 이용자에게만 자원에 접근할 수 있는 권한을 API Key의 형태로 제공하고, 데이터를 요청할 때 API key를 같이 전달해야만 원하는 응답을 받을 수 있음.



이미지 출처
https://velog.velcdn.com/images/sangbin2/post/bed6d0ff-d2df-41e1-a412-bee9bf93d724/image.png
https://hudi.blog/static/6fa55f3924832c12bf4be206a2bf6ad7/ca1dc/idempotence.png

0개의 댓글