매개체1. 접근할 프로그램의 규칙이 잘 짜이지 않고 복잡한 경우
2. 프로그램 보안 상 외부에서 누구나 사용할 수 없고 제한된 기능들을 간접적으로 제공하고 싶을 때

Server
Client
! pip install requests
import pprint
import requests
api_key = ''
# 서울의 위도
lat = 37.56
# 서울의 경도
lon = 126.97
url = f'https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={api_key}'
data = requests.get(url).json()
# 그냥 출력하기
print(data)
# 예쁘게 출력하기
pprint.pprint(data)
# 날씨 요약 정보 : 서울 기준 'clear sky' 가 출력 되도록
pprint.pprint(data['weather'][0]['description'])
pprint.pprint(data.get('weather')[0].get('description'))
# 코드 소개
url
- 요청을 보내는 서버의 주소
requests.get(url)
- 해당 서버(url)에 데이터를 달라고 요청을 보내는 함수
.json()
- 내부의 데이터를 JSON(파이썬의 딕셔너리와 비슷함) 형태로 변환해주는 함수
외부에서 사용할 수 있도록 무료로 개방 된 API
주의 사항
악성 사용자가 100만 개의 계정을 생성해 API 요청을 보내는 상황일 때 --> 너무 많은 계정에서 동시에 요청시 서버 부하
문제 극복 : API KEY를 통해 사용자 확인
- 사용량을 제한되어 있다.
표현 방법일 뿐입니다.AJAX 는 단순히 데이터만이 아니라 JavaScript 그 자체도 전달할 수 있어 데이터인 줄 알고 받았지만 악성 스크립트가 될 수 있다. 이를 방지하기 위해 JSON 관련 라이브러리를 따로 사용한다.