The A :

728x90
반응형

Today I Lean

네트워크 _ HTTP

 

일단... 이게 뭔말이지 싶다

가면갈수록 알다가도 모르겠는 아이들이 너무나도 많아서

어디서 부터 공부해야하는지 감이 안온다

 

일단 해보긴 하지만.. 아직까진 자신이 없는 하루하루다 ㅠㅠ

 

 

 

학습목표 및 개념정리

# REST API

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

- REST API 문서를 읽고, 디자인 할 수 있다.

- Open API와 API Key에 대해 이해할 수 있다.

 

# Postman

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

- HTTP API 테스팅이 무엇인지 알 수 있다.

- Postman을 사용하여 서버에 GET, POST 요청을 보내고 응답을 받을 수 있다.

 

# 과제 / Message States 요청

 

 

 

 

배운 것

# REST API

1. REST API 란?

 : REST (Representational State Transfer) → 웹(http)의 장점을 최대한 활용할 수 있는 아키텍쳐

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

- 좋은 REST API를 디자인 하는 방법

 : 현실적으로 아래 성숙도 모델에서 2단계 까지만 충족해도 좋은 REST API라고 부를수 있다. (HTTP API 라고 부름)

단계 핵심 사용 방법 및 설명
0단계 HTTP 프로토콜 사용 좋은 REST API를 작성하기 위한 기본 단계
1단계 개별 리소스와 통신 리소스와 응답에 따라 다른 엔드포인트
(명사 형태의 단어 사용)
2단계 CRUD에 맞는 적절한 HTTP 메소드 사용 GET → 서버의데이터를 변화시키지 않는 요청에 사용
POST → 요청마다 새로운 리소스 생성
PUT → 요청마다 같은 리소스를 반환 (멱등성을 가짐)
PUT → 교체
PATCH → 수정
3단계 하이퍼미디어 컬트롤 적용 하이퍼링크
리소스와 기능에 쉽고 효율적으로 접근할 수 있도록 함

 

 

 

2. Open API와 API Key

- Open API
 : 누구에게나 열려있는 API

 → 이용수칙에 따라 제한사항(가격, 정보의 제한)이 있을 수 있다.

 

- API Key

 : API를 이용하기 위한 Key

 → 허용된 이용자에게만 자원에 접근할 수 있는 권한을 API Key의 형태로 제공하고, 데이터를 요청할 때 API Key를 같이 전달해야만 원하는 응답을 받을 수 있음

 

 

 

 

# Postman

1. Postman 사용 방법

- HTTP API 테스트 도구
 : 서버 API를 테스트 하거나, API를 만드는 과정에서 유용하게 사용됨

 

▪ HTTP API 테스트 도구 (CLI)

  • curl (대부분의 리눅스 환경에 내장되어 있음)
  • wuzz

HTTP API 테스트 도구 (GUI)

  • postman (가장 사용하기 쉬움)
  • insomnia

 

 

- Postman 사용하기

 : 이미 만들어져 있는 API 서버가 주어지는 경우 (HTTP로 소통하기 위해서는 API 서버의 endpoint가 URL로 주어져야 함)

 

▪ GET 요청하기 

URL http://3.36.72.17:3000/ [주소] API 서버의 endpoint
메시지 조회 Get /kimcoding/messages [요청] kimcoding이 작성한 모든 메시지를 조회
추가적인 파라미터 사용가능
roomname 방 이름(문자열) 특정 roomname만 조회
Response {
    "id": 1,
    "username": "김코딩",
    "text": "안녕하세요",
    "roomname": "로비",
    "date": "2021-04-02 12:00:00"
  }
 // ...여러 개의 메시지
[데이터] Request에 따른 Response

응답은 JSON 형식으로 나타남
속성 parameter 형식 설명
id 숫자 고유한 아이디
username 문자열 사용자 이름
text 본문 내용
roomname 방 이름
date 작성한 시간

 

▪ Postman 화면 보기

  1. 새로운 탭 오픈 : 요청/응답 확인 가능
  2. HTTP 메서드 선택 : GET, POST, DELETE 등과 같은 메서드 중 하나 선택
  3. URL 입력 창 : URL과 Endpoint 입력 → http://3.36.72.17:3000/kimcoding/messages
  4. HTTP 요청 버튼
  5. HTTP 요청 시 설정할 수 있는 옵션 : 추가적인 파라미터 or 요청 본문(body) 추가 가능 → Params 탭의 Key, Value에 입력
  6. HTTP 응답 화면

 

▪ POST 요청하기

 : GET요청과는 다르게 본문(body)를 포함하는 경우가 많음

URL http://3.36.72.17:3000/ [주소] API 서버의 endpoint
메시지 추가 POST /kimcoding/messages [요청] kimcoding이 새로운 message 작성
요청본문에 반드시 포함 parameter 형식 설명 필수 여부
username 문자열 사용자 이름 필수
text 본문 내용
roomname 방 이름
Response {
    "id": 5
  }
[데이터] Request에 따른 Response

응답은 JSON 형식으로 나타남

이때 id는 숫자 형식이고, 새로 생성된 메시지의 고유한 ID 값

  1. 본문의 형식 선택 1 → JSON 형식은 raw
  2. 본문의 형식 선택 2 → 보낼 형식에 맞는 타입 선택
  3. Content-Type: application/json 위 1,2 번은 HTTP 요청 헤더에 전송할 데이터 타입을 입력하는 것 과 같음
  4. 본문 내용 → 본문 입력, 앞서 선택한 타입에 맞게 작성함
  5. 전송

 

▪ 응답 살펴보기

 : timeout → 서버가 요청에 대한 응답을 하지 않는 경우 요청이 끝나지 않음 (서버가 응답처리를 하도록 수정)

 : 우측 상단의 HTTP 응답코드 확인

 

 

 

# 과제 / Message States 요청

?

 

 

 

 

*****

 

 

 

 

 

 

Tomorrow Chapter

# Database & SQL

# SQL

# 과제/Lean SQL

 

 

 


 

 

↓ 이전 글 ↓

 

수정 [코드스테이츠] 05_22_TIL : 네트워크 _ 웹 애플리케이션의 작동원리

Today I Lean 네트워크 _ 웹 애플리케이션의 작동원리 학습목표 및 개념정리 # 웹 애플리케이션에 대한 이해 - 웹 애플리케이션 네이티브 애플리케이션의 기본 개념에 대해 이해할 수 있다. # 네트워

theflower01.tistory.com

 

↓ 코트스테이츠 부트캠프 관련 글 한번에 보기 ↓

 

'IT/코드스테이츠 부트캠프' 카테고리의 글 목록

Flower, Plant, Study

theflower01.tistory.com

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading