Application Programming Interface
API란?
명령, 함수, 프로토컬, 객체로 이루어져있다.
프로그래머들은 API를 이용해 소프트웨어를 생성하거나,
다양한 웹사이트에서 그들이 제공하는 데이터를 요청(request)하고, 받는(response)다.
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software.(위키피디아)
My Program 나의 프로그램 |
Request >>>> | External System 외부 시스템 ex)웹사이트 |
API | ||
<<<< Response |
API를 식당의 메뉴판이라 생각해보자.
내가 식당에 가서 메뉴판을 보고 음식을 주문하려고 한다.
메뉴판에 없는 메뉴는 주문할 수 없다.
마찬가지로 프로그래머 역시
해당 웹사이트의 API가 줄 수 있는 정보만 요청(request)해야 한다.
또한 주문하는 방식은 식당이 정한 규칙을 따라야 한다.
식당 마다 POS기로 주문해야 하는 경우, 말로 주문해야 하는 경우, 온라인 주문만 해야하는 경우 등
그들 만의 규칙이 있다.
마찬가지로 프로그래머 역시
해당 API가 요청하는 규칙에 따라 정보를 요청(request)해야
제대로 응답(response)받을 수 있다.
API Request
API를 요청하는 것
requests.get(url=" ")
import requests
response = requests.get(url="http://api.open-notify.org/iss-now.json")
print(response)
Response Codes
1XX | Hold on | 잠시만요 |
2XX | Here You Go | 성공! |
3XX | Go Away | 권한이 없어요 |
4XX | You Screwed Up | 여러분이 잘못했어요 |
5XX | I Screwed up | 서버가 잘못됐어요 |
status_code
반응으로 오는 글자 중, response code 즉 숫자만 받는다.
import requests
response = requests.get(url="http://api.open-notify.org/iss-now.json")
print(response.status_code)
raise_for_status()
request모듈의 메소드로,
에러가 있을 때 raise HTTP Error를 생성한다.
import requests
response = requests.get(url="http://api.open-notify.org/iss-now.json")
response.raise_for_status()
Endpoint 엔드포인트 = URL
데이터를 찾을 수 있는 위치
JSON
인터넷을 통해 데이터를 전송하는 거의 표준 방식
미니멀, 공백, 기호가 많이 없고, 직관적이고, 빠르다.
JSON Viewer Awesome
JSON 파일을 트리 구조로 보기 쉽게 시각해놓은 앱
크롬에서 바로 다운로드 받을 수 있다.
json형태로 response를 받는다.
json은 딕셔너리 형태이기 때문에
[ ] 메소드를 이용하여 세부 속성에 접근한다.
data = response.json()
print(data)
>>{'iss_position': {'longitude': '-47.1223', 'latitude': '-40.2678'}, 'timestamp': 1664111992, 'message': 'success'}
import requests
response = requests.get(url="http://api.open-notify.org/iss-now.json")
response.raise_for_status()
data = response.json()
print(data)
longitude = data['iss_position']['longitude']
latitude = data['iss_position']['latitude']
position = (longitude, latitude)
print(position)
>>('-37.9146', '-33.9839')
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[33-3 파이썬] API Parameters (1) | 2022.09.26 |
---|---|
[33-2 파이썬] API 실습하기(Kanye.rest, 명언 가져오기) (1) | 2022.09.26 |
[32-5 파이썬] 업무 자동화, 파이썬 코드 자동으로 실행하도록 스케줄하기 (1) | 2022.09.25 |
[32-4 파이썬] 파이썬으로 생일 축하 메일 보내기 (0) | 2022.09.25 |
[32-3 파이썬] 파이썬으로 긍정 명언 이메일 보내기 (3) | 2022.09.25 |