S2 Unit 8. HTTP/네트워크 실습

나현·2022년 10월 6일
0

학습일지

목록 보기
25/53
post-thumbnail

💡 이번에 배운 내용

  • Section2.
    서버와 통신이 가능한 구조적인 Web App을 만들 수 있다.
  • Unit8. HTTP/네트워크 실습: API의 대표적인 아키텍처인 REST API를 알아보고, Postman으로 HTTP 요청을 직접 실습(API 테스팅)한다.

느낀점

이번엔 내용이 많지는 않았지만 중요한 개념을 배우고 학습했다.
지난 번 배웠던 내용들에 이어지다 보니 지난 번 배운 내용들도 어느 정도 감이 잡히고 실습하니 좀 더 학습하기 괜찮았다.
뭐 몰랐던 시절, REST API에 대해 설명하는데 이해 못하고 외워서 설명했다면 이번에는 완전 다른 걸 배운 느낌이다. 옛 친구가 낯선 느낌이랄까!
그래도 다행히 오늘은 한발짝 더 배운 느낌이 들어 보람차다🥹


키워드

REST API, REST 성숙도 모델, OPEN API, API Key


학습내용

Ch1. REST API

REST(Representational State Transfer) API는 웹에서 사용되는 데이터, 리소스를 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다.
다음의 링크는 REST API의 가이드로 참고할 만한 내용들이다.

REST API를 작성할 때는 REST 성숙도 모델을 토대로 몇 가지 규칙을 지켜야 한다.

REST 성숙도 모델

REST 성숙도 모델은 REST API를 만들기 위한 참고 모델로 레오나르드 리차드슨(Leonard Richardson)이 만들었다.
총 4단계(0~3단계)로 구성되어 있으며 2-3단계까지 지켜야 REST API라고 할 수 있다. 2단계까지 적용한 API는 HTTP API라고도 부른다.
각 단계의 특징은 다음과 같다.

  • 0단계: HTTP 프로토콜을 사용한 단계
  • 1단계:
    개별 리소스(Resource)로 엔드포인트(Endpoint)를 사용
    리소스에 대한 정보, 성공/실패 여부를 응답으로 전달
  • 2단계:
    CRUD에 맞게 적절한 HTTP 메서드를 사용
    다음과 같은 규칙으로 메서드 사용
    • GET: 서버의 데이터를 변화시키지 않는 요청에 사용
    • POST: 요청마다 새로운 리소스를 생성
    • PUT: 요청마다 같은 리소스를 반환. 멱등(idempotent. 연산을 여러 번 적용해도 결과값이 달라지지 않음)
    • PATCH: 리소스 수정
  • 3단계:
    HATEOAS(Hypermedia As The Engine Of Application State)라는 하이퍼미디어 컨트롤을 적용
    응답에 리소스의 URI를 포함한 링크 요소를 삽입하여 작성
    링크요소는
    • 응답을 받은 후를 위해 하이퍼미디어 컨트롤을 포함, 새로운 기능에 접근할 수 있도록 함
    • 쉽고 효율적으로 리소스, 기능에 접근할 수 있음

Open API

Open API는 많은 사용자에게 열려있는 API를 의미한다.
그러나 모든 Open API가 무료는 아니며 사용 규칙, 제한 등이 있을 수 있다.

API Key

API Key는 사용자가 리소스에 접근할 수 있도록 부여하는 권한이며, 데이터를 요청할 때 이 API Key를 전달해야 한다.
서버 사용시 API key가 필요하지 않은 경우도 있다.

Ch2. Postman

HTTP/네트워크 실습을 위해 GET 요청을 보내거나 개발자 도구의 콘솔 창에서 Web API fetch를 사용할 수 있다.

그리고 HTTP API를 테스트하는 여러 도구들이 있다.

  • HTTP API 테스트 도구 (CLI)
    curl(리눅스 환경에 내장), wuzz
  • HTTP API 테스트 도구 (GUI)
    Postman, Insomnia

여러 테스트 도구들이 있으나 그 중에서 🔗Postman을 사용해 API 메서드, url로 실습을 해보았다.

Postman에 가입하고, 최상단 Workspace를 생성하고,
탭을 생성하면 실습할 수 있다.
HTTP 메서드의 GET 뿐 아니라 다양한 메서드를 이용하여 테스트할 수 있다.

Postman 실습

  1. 메서드 선택: GET, POST 등의 메서드를 선택한다.
  2. URL/Path 형태로 URL을 입력한다.
    나의 경우 날씨를 받아오는 API에서 안내한대로 서울의 날씨를 받아오기 위해 url을 입력했다.

    날씨 API는 openweather 사이트에서 회원가입 후
    🔗current weather API를 사용했다.
    https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api key}
    에서 city에 seoul을, api key 자리에 내가 부여받은 API key를 사용했다.
    이 URL은 브라우저에 띄워도 응답내용을 확인할 수 있다.
    (단 계정이 메일 인증을 한 뒤 약 30분 이상 지나야 응답받을 수 있다.)

  3. 작성한 요청을 보내는 버튼이다.
  4. 요청시 필요한 body를 작성할 수 있다. 종류(그림에는 row)와 데이터 형식(Text, JSON 등)을 선택할 수 있다.
  5. 요청 후 받은 응답을 확인할 수 있다.

질문해보기

1. 엔드포인트란?
API 엔드포인트는 API 통신시 접점으로 위의 예제에서는 통신시 작성하는 URL, URI이다. 여기서 사이트 도메인이라 IP주소는 root-endpoint 라고 하며, 그 뒤는 이후 경로인 path, query 등으로 구성되어 있다.
이 엔드포인트에는 서버 URL, 서비스 및 시스템 간에 정보가 송수신되는 기타 특정 디지털 위치가 포함된다.

🔗API란 무엇인가요? -AWS
🔗API 엔드포인트 | cloudflare

profile
프론트엔드 개발자 NH입니다. 시리즈로 보시면 더 쉽게 여러 글들을 볼 수 있습니다!

2개의 댓글

comment-user-thumbnail
2022년 10월 6일

잘보고가욥 :D

1개의 답글