API 소개
- 프로그램들이 소통할 수 있는 인터페이스 (입력과 출력의 모음)
- 클라이언트 & API : 손님은 뭔가를 요청하고 있는 클라이언트, 메뉴는 API
- API Server : 손님이 메뉴를 보고 요청을 할 수 있도록 중간다리 역할을 해주는 웨이터가 바로 API Server
- Service Server : 국에는 클라이언트의 요청을 서버에서 응답
- API 응답 : JSON 형식일 가능성이 많음
HTTP API
컴퓨터들의 통신 규약
- HTTP Request: 요청을 하는 컴퓨터는 클라이언트라 부르고 요청을 받는 컴퓨터는 서버
- CRUD 에 사용되는 HTTP 메소드
- GET : 특정 리소스를 달라고 할 때에 사용
- POST : 서버 측의 특정 리소스를 저장할 때 사용
- 회원가입을 할 때에 특정 유저의 정보를 서버에 저장
- PUT/PATCH : 서버 측의 특정 리소스를 업데이트 할 때 사용됩니다. PUT 은 데이터 전부를 바꿀 때, PATCH 는 부분적으로 변경할 때 사용
- DELETE : 서버 측의 특정 리소스를 삭제할 때 사용
- HTTP Response : Status Code
- 100 번대 : 정보 응답
- 200 번대 : 성공 응답
- 300 번대 : 리다이렉션 메시지
- 400 번대 : 클라이언트 에러 응답
- 500 번대 : 서버 에러 응답
- General 확인
- 'Request Method': 이전에 봤던 HTTP 요청 메소드 중 GET, 리소스를 가져온다는 뜻인 메소드를 사용
- 'Status Code' : 200 이라는 숫자 앞에 초록색 불이 들어왔습니다. 200 은 'OK', 성공했다는 뜻, 여기에서는 GET 요청이 성공적이었다는 뜻
- 'Request URL' : 누가 요청을 하고 있는지
- 'Remote Address' : 어느 리모트 서버에 요청을 하고 있는지 알려주고 있습니다. 현재는 157.245.183.96 의 443 포트에 요청을 보내고 있음
- 'Referrer Policy' : 요청을 보내는 곳이 당사자인지, 타 웹사이트에서 연결된 건지 등 알려줌, 현재는 'no-referrer' 로 현 웹사이트에서 보내고 있음
REST API
- REpresentational State of Transfer : REST 가이드라인의 원칙 6개의 모든 가이드라인을 지키는 API 를 RESTful API
- REST 와 HTTP : REST 아키텍처는 HTTP 를 사용할 때 특정 가이드라인들을 제시
- GET : 데이터를 조회
- POST : 데이터를 생성
- PATCH : 데이터를 업데이트 (일부 변경)
- PUT : 데이터를 업데이트 (전체 변경)
- DELETE : 데이터 삭제
- HTTP Response
- 200 (OK)
- 201 (Created)
- 202 (Accepted)
- 204 (No Content)
- 301 (Moved Permanently)
openweather API
import requests
import json
API_URL = 'https://api.openweathermap.org/data/2.5/weather?q=Seoul&appid=3b8fb7eea967548d8cb2837639e4ca9e'
raw_data = requests.get(API_URL)
parsed_data = json.loads(raw_data.text)
print(parsed_data)