[HTTP/네트워크] REST API

Song·2021년 11월 23일
0

bootcamp

목록 보기
8/11

REST는 "Representational State Transfer"의 약자로 http 웹의 장점을 최대로 활용할 수 있는 아키텍쳐이다. RESTful한 API를 작성하기 위해서는 0-3단계로 총 4단계 충족되어야 하는데 보통 2단계까지만 충족되어도 잘 작성되어진 API라고 한다.

  • 0단계

  • 1단계
    개별 리소스와의 통신을 준수해야한다. 즉 구체적으로 자원 요청해야한다. 단순히 자원이 있다, 없다만을 판단할 수 있는 요청을 보내기보다는 어느 자리에 내가 원하는 리소스가 정확히 있는지를 물어보는 요청을 할 수 있어야 한다.

  • 2단계
    CRUD(Create, Read, Update, Delete)를 맞춰 적절한 HTTP 메서드를 사용할 수 있어야 한다.

    멱등성(idempotent)
    서버 리소스가 변화되어 같은 작업을 실행해도 다른 결과값이 나올때는 멱등성이 없다고 판단한다.
    HTTP 메세지 중 POST의 경우, 예약프로그램을 예시로, 사용자가 신청서에 맞게 한번 예약을 한 경우(POST) 같은 사용자가 같은 요청을 또 보냈을 때는 다른 결과가 나오게 된다. 첫번째 예약을 했을 때는 "예약이 완료되었습니다."라는 문구의 결과가 나올 것이고 예약 현황을 가지는 리소스에는 사용자가 요청한 데이터가 쌓이게 될 것이다.
    그리고 똑같이 두번째 예약을 진행할 때는 "이미 예약이 되어 있어 더이상 예약이 불가합니다."라는 결과가 나오면서 멱등성이 성립되지 않는다. 원래 서버가 가지고 있던 '예약 현황' 리소스가 변경되었기 때문에 다른 결과값이 나올 수 밖에 없는 상황이 생겼기 때문이다.

API 작성이 어렵다면 다른 API 작성 기준이 어떻게 되는지를 확인해보면 도움이 된다.

호주 정부 API 작성 가이드
https://api.gov.au/standards/national_api_standards/

구글 API 작성 가이드
https://cloud.google.com/apis/design?hl=ko

0개의 댓글