Rest API, Restful API 란?

DY·2022년 8월 7일
0

CS

목록 보기
1/10

Rest API

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

Rest API 성숙도 모델

  • Rest하게 작성하는 API는 크게 0~3단계로 나뉘고 보통 2단계까지만 해도 잘 표현된 Rest api라고 말한다.

0 단계

  • 단순히 HTTP 프로토콜을 사용하는것.
  • Rest 원칙을 준수했다고 보기어렵다.

1 단계

  • 개별 리소스(Resource)와의 통신을 준수해야함.
  • 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야하며 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 한다
  • URI에 개별 아이디에 따른 값을 조회할수 있도록 URI를 만들어야함.
  • 0단계에서는 /appointment로 값을 조회했다면 아래는 엔드포인트를 사용했음.

2단계

  • CRUD에 맞게 적절한 HTTP 메서드를 사용해야 함.
  • GET 메서드 같은 경우는 서버의 데이터를 변화시키지 않는 요청에 사용해야 함.
  • POST 메서드는 요청마다 새로운 리소스를 생성하고
  • PUT 메서드는 요청마다 같은 리소스를 반환한다.
    • 이렇게 매 요청마다 같은 리소스를 반환하는 특징을 멱등(idempotent)하다고 한다. 그렇기 때문에 멱등성을 가지는 메서드 PUT과 그렇지 않은 메서드POST는 구분하여 사용해야 한다.
  • PUT 메서드와 PATCH 메서드도 구분하여 사용해야 합니다. PUT은 교체, PATCH는 수정의 용도로 사용한다.

3단계

  • HATEOAS(Hypertext As The Engine Of Application State)라는 약어로 표현되는 하이퍼미디어 컨트롤을 적용해야한다.
  • 응답에는 리소스의 URI를 포함한 링크요소를 삽입하여 작성해야 한다.
  • 유저가 특정 작업을 요청했을 때 응답으로 해당작업의 내용과 추가적으로 관련된 정보를 CRUD할수 있는 link를 포함하여 작성하는것.

Restful API Rest API

  • 앞에서 말한 성숙도와 Rest API를 설계시 지켜야할 약속을 잘 지켜 만든 API를 Restful한 API라고 한다. 즉 Rest의 설계규칙을 잘 지켜서 만든 API를 말한다.

Open API

  • 글자 그대로 누구에게나 열려있는 API
  • 그러나 "무제한으로 이용할 수 있다"라는 의미는 아니다. API마다 정해진 이용 수칙이 있고, 그 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있다. 또한 사용시 인증에 필요한 API key를 요구할수도 있다.

Postman

  • api테스트를 위해 HTTP 요청을 테스트 할 수 있는 테스트 도구
  • 테스트 도구를 사용하지 않고 fetch를 이용한 코드를 작성해서 요청할 수 있지만 번거롭기 때문에 사용
  • HTTP API 테스트 도구 (CLI)
    • curl
    • wuzz
  • HTTP API 테스트 도구 (GUI)
    • Postman
    • Insomnia
profile
화면에 보이는 모든것에 관심이 있습니다. 개발하면서 고민했던것들, 공부했던걸 기록하는 저장소입니다.

0개의 댓글