[CodeStates-Section2]U8.HTTP/네트워크 실습

hameee·2022년 12월 5일
0

CodeStates_Frontend_42기

목록 보기
21/39

1.후기

  이번 유닛을 통해 외부 데이터를 어떻게 받아올 수 있는지 알 수 있었다. 코딩을 접한 이후로, 시중의 사이트와 어플들은 어디서, 어떻게 데이터를 받아오는지 항상 궁금했는데 그 부분을 알고 나니 조금 더 개발자라는 직군과 가까워진 기분이다. 이제 인터넷의 다양한 데이터를 활용해 내가 원하는 대로 조리해 볼 수 있어 기쁘다🤓

2.새롭게 알게 된 것

Chapter1. REST API
 -1. REST API 디자인
 -2. REST 성숙도 모델 - 0단계
 -3. REST 성숙도 모델 - 1단계
 -4. REST 성숙도 모델 - 2단계
 -5. REST 성숙도 모델 - 3단계
 -6. Open API와 API Key

Chapter2. Postman
 -1. Postman 사용하는 방법
 -2. Postman으로 API 테스트하기
 -3. Postman으로 날씨 받아오기

<Chapter1. REST API>

1.REST API 디자인

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

-기업이 제시한 REST API 가이드라인
구글: https://cloud.google.com/apis/design/resources?hl=ko
마이크로소프트: https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md

2) REST API를 잘 적용하기 위한 4단계 모델

로이 필딩 -> 모든 단계를 충족해야 좋은 API 디자인 -> REST API
일반적으로 -> 2단계까지만 적용해도 좋은 API 디자인 -> HTTP API

2.REST 성숙도 모델 - 0단계

: HTTP 프로토콜 사용, REST API X

3.REST 성숙도 모델 - 1단계

요청: 개별 리소스에 맞는 엔드포인트를 사용
응답: 사용한 리소스에 대한 정보+리소스 사용에 대한 성공/실패 여부를 반환

예약 가능한 시간 확인 요청으로 받게 되는 응답 -> 의사 허준의 예약 가능 시간대 -> /doctor/허준
특정 시간에 예약 요청으로 받게 되는 응답 -> "slots" 리소스의 id가 123인 리소스 변경 -> /slots/123

주의. 엔드포인트 작성 시
❌동사, HTTP 메서드, 어떤 행위에 대한 단어 사용
✅리소스에 집중해 명사 형태의 단어로 작성

4.REST 성숙도 모델 - 2단계

: CRUD에 맞게 적절한 HTTP 메서드를 사용

예약 가능한 시간 확인 -> READ -> GET 메서드 사용
특정 시간에 예약 -> CREATE -> POST 메서드 사용

GET 메서드 -> body 없으므로 query parameter 사용
POST 메서드
-> 새롭게 생성된 리소스를 보내줘야 하므로 응답 코드 작성(201 Created)
-> 관련 리소스를 클라이언트가 확인할 수 있어야 하므로 URI 작성(Location)

1) HTTP 메서드 규칙
-GET: 서버의 데이터를 변화시키지 않는 요청에 사용
-POST: 요청마다 새로운 리소스 생성(멱등성X)
-PUT: 교체할 경우 사용, 요청마다 같은 리소스 반환(멱등성O, idempotent)(전체 교체, 전체 데이터 전송)
-PATCH: 수정할 경우 사용(부분 수정, 수정할 부분만 전송)

참고. 멱등성과 안전

Idempotence: 멱등성(동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때)
Safety: 안전(HTTP 메서드는 서버의 상태를 변경하지 않는 경우)

5.REST 성숙도 모델 - 3단계

: 응답에는 리소스의 URI를 포함한 링크 요소를 삽입하여 작성(HATEOAS 원칙 준수)

예약 가능한 시간 확인 요청의 응답-> 예약 링크 삽입
특정 시간대 예약 요청의 응답 -> 예약 확인 링크 삽입

6.Open API와 API Key

1) Open API
: 누구에게 열려있는 API/가격, 정보 제한이 있을 수 있음
-제공받을 수 있는 사이트: https://www.data.go.kr/

2) API Key
:API를 이용하기 위한 키/필요하지 않은 경우도 있음

<Chapter2. Postman>

1.Postman 사용하는 방법

Postman 사이트: https://www.postman.com/

2.Postman으로 API 테스트하기

1) POST 요청 시
body-raw 체크, JSON으로 변경

3.Postman으로 날씨 받아오기

1) 방법
API Keys 발급 후 API 문서대로 하기
Open Weather 사이트: https://openweathermap.org/

2) 다른 연습 사이트
도로공사 Open API: http://data.ex.co.kr/openapi/basicinfo/openApiInfoM?apiId=0102&pn=-1
공공데이터 Open API: https://www.data.go.kr/iim/api/selectAPIAcountView.do#layer-api-guide

<기타>

1.REST API 응답 코드

참고 사이트: https://blog.restcase.com/5-basic-rest-api-design-guidelines/

2.쿼리 파라미터 개수

-> 12개(? 뒤부터 query parameter)

0개의 댓글