HTTP/네트워크

Ethan KIM·2022년 8월 12일
0

Achievement Goals

목록 보기
1/7

위에 achievement Goal 은 날아가버림..

REST API에 대해 이해할 수 있다.

REST API 란 Representational State Transfer의 약자로, 웹에서 사용하는 데이터나 리소스를 HTTP URI 로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식이다.

REST API의 성숙도 모델.

3단계 까지 충족이 되어야 좋은 REST API 모델이라고 부를 수 있다. 그럼 이제부터 0단계부터 하나하나 특징들의 예시를 들어가며 설명해보자.

0단계.

0단계에선 단순히 HTTP 를 사용해도 좋은 API 작성 방법에 충족한다. 예를들어, HTTP 메소드 POST를 사용하여 예약 가능한 날짜에 병원 예약을 한다고 가정해보자.
그러면, 2가지를 POST 요청을 통해 예약 일정을 잡을 수 있는데, 1. 예약가능 시간을 확인하는 POST 메서드와 2. 예약 요청을 하는 POST 메서드 두가지를 사용해야한다.


-------사실 1번은 GET을 사용해야함. 근데 0번째 예시이므로 POST를 사용한다고 가정. 즉, method에 맞지 않게 사용해도 결국 원하는 응답이 오면 맞는 것이라 여겨짐.--------
뭐 0단계이므로, 딱히 생각할건 없다. 그냥 HTTP protocol 에 맞추어 요청 응답 받으면된다.

1단계.

1단계에 들어서면서, 개별 리소스와의 통신 준수 라는 조건을 준수 해야한다. 이를 조금 더 쉽게 말하면, 위의 REST API의 정의에서 말하듯, 웹에서 사용하는 데이터나 리소스를 모두 HTTP URI로 표현한다고 했다. 그래서, 모든 데이터 자원은 그에 맞는 엔드포인트를 사용해야한다.

즉 0단계에서 엔드포인트를 개별 리소스에 설정하지 않고 하면 안된다는 뜻이다. 사실 우리가 조회 해야하는것은, 좀 더 깊게 생각 해야한다.

1. 예약가능 시간은, 의사마다 다 가지고 있다. A의사 B의사의 예약 가능 시간이 다르고, 그렇기에, 해당 의사(리소스)에 맞는 엔드포인트를 작성하는것이 1단계의 목적이다.
2. 예약 요청 또한, 엔드포인트로, 해당 시간에 맞는 슬롯이나 테이블로 구체화된 엔드 포인트로 사용해야할 것이다.

마지막으로, 1단계에선 request에대한 응답의 옳고 그름을 판단 해줄 수 있어야한다.

2단계.

2단계에서는 CRUD 에 적합한 HTTP 요청 응답이 오고가는지에 대해 다룬다.
즉, 위에서 언급한 내용이다. 예약 가능 시간을 조회! 하는것은 READ의 영역이며, HTTP 메소드론, GET을 서용해야한다.
또한 상태코드도 신경 써야하는데, 단순히 200, 400 이 아니라, 만약 POST 메소드로 리소스가 CREATE 되었을때, 201 Created 처럼 상태 응답코드도 신경 써서 작성해 주어야한다.

보통 모범적인 API예시도 2단계 까지 작성되는 경우가 많으니, 3단계는 OPTIONAL이지 Requirement가 아님을 알아두자.

3단계.

HATEOAS
HyperText As The Engine Of Application Status.
하이퍼 미디어 컨트롤을 포함한다.
2단계와 동일한데, 응답 헤더에 하이퍼링크가 따라옴.
예를 들어 설명하는것이 이해가 빠를것. 예약 가능 시간을 요청하고, 응답으로 예약 가능 날짜 링크나, 예약 요청 완료후 응답으로 예약 취소 링크를 넘겨주는게 가능해지는것.

  • REST API 문서를 읽을 수 있다.
  • MS , Google, 등 API 가이드라인 문서가 있다. 읽어보면, 굉장히 세세하게 나누어 진걸 볼 수 있는데 예를들어, MS의경우 interpreting guideline 부터, taxonomy, client guide, fundamental, CORS... 등등 HTTP 인터페이스를 사용하여 통신할때의 모든 경우의수를 적어준다. 이건 어떻게 사용하고 저건 어떻게 사용하고 자세히 나와있음.

  • REST API에 맞춰 디자인 해보시오
  • 프로젝트때 한번 해보자.

  • OPEN API와 API Key 에 대해 설명하시오.
  • OPEN API
    OPEN API란 모두에게 열려있는 API를 의미한다. 일례로, 공공데이터가 있고, 날씨 데이터가 있다.

    API Key
    API key란 API를 이용하기 위해 필요한 키값이다. 로그인된 이용자에게만 자원을 넘겨주도록 하기 위해 API Key 값을 넘겨주고, 데이터를 요청할때 이 Key 값으로 접근하게끔 유도한다.

    Postman이 무엇인지 이해하고 사용할 수 있다.

  • HTTP API 테스팅 해보시오.
  • 해보았다. GET POST 메소드만 사용했지만, 특정 URI에 존재하는 리소스값을 GET하고 리소스를 POST로 추가해보는 작업을 함.

  • Postman을 사용하여 서버에 GET, POST 요청을 보내고 응답을 받으시오.
  • 해봄.

  • Postman을 사용해서 Open Weather Map Open API 요청을 보내시오
  • 해봄.

    profile
    좋아하는것만 함

    0개의 댓글