Section2-Unit8 [HTTP/Network] 실습

정호재·2023년 1월 31일
0

코드스테이츠

목록 보기
17/37

REST API

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

  • 자원은 uri로, 행위는 매소드로, 자원 및 리소스들의 관계는 표현이라는 기법을 사용해 구성

REST 성숙도 모델

0단계 - HTTP 사용
1단계 - 개발 리소스와의 통신 준수
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 여기까지만 좋은 API의 기준선
2단계 - HTTP 메소드 원칙 준수
3단계 - HATEOAS 원칙 준수

REST 성숙도 - 0단계

: HTTP를 사용해 요청하고 응답함

REST 성숙도 - 1단계

: 모든 자원은 각각의 리소스에 맞게 서버에 자원을 요청할 수 있는 url을 가져야하며, 응답으로 자원에 대한 정보를 내포해 전달되어야 함

POST /cook/fish/create/1
POST /cook/fish/Delete/1
POST /cook/fish/read
=> 해당 방식처럼 각각의 리소스에 대해 다르게 요청가능하지만 HTTP POST만 사용하는 상태

추가로, {데이터, {데이터에 대한 성공/실패 관련 정보(Ex. 물고기 완판)}} 같이 요청 리소스 사용에 대한 실패 성공 정보를 포함해야함

REST 성숙도 - 2단계

: 0~1단계의 성숙도를 만족하는 상태에서 CRUD에 적합한 HTTP 매소드를 사용할 수 있어야함

  • Create => POST /cook/redfish (응답코드과 location 헤더를 사용해 구현해야함)
  • Read => GET /cook/redfish/1?size=30cm (body를 가지지 않아 qery를 사용해 리소스 전달)
  • Update =>
    PUT /cook/redfish/1 (자원 전체 교체)
    PUT /cook/redfish/1 (자원 일부 교체)
  • Delete => DELETE /cook/redfish/1

REST 성숙도 - 3단계

: 요청의 경우 2단계와 동일하지만 응답에 하이터 링크 요소들을 추가하여 다양한 액션이 이루어 질 수 있도록함
{데이터,
{데이터에 관한 실패/성공 관련 데이터},
{링크 :{{도매시장 사이트 연결 데이터}, {주문 취소 창 데이터}, {오시는 길 데이터}...}}
}

Open API & API Key

Open API
: 공공데이터에 쉽게 접근하게 해주는 API로 입력한 키워드와 관련한 API를 확인할 수 있게 해줌

API Key
: 클라이언트가 서버의 자원에 접근하기 위해 필요한 권한으로 권한이 필요로 하는 자원의 경우 요청과 함께 API Key를 포함해 전달해야함

Postman 내가 사용해 본 예제

  • 도쿄 날씨 정보 가져오기

    -api.openweathermap.org/data/2.5/weather?id=1850147&appid={API Key}

profile
공부 일기장

0개의 댓글