requests는 파이썬으로 REST API를 호출하는 프로그램을 작성할 때 가장 많이 사용되는 라이브러리다.
requests 설치
requests가 설치되어 있지 않다면 파이썬의 패키지 매니저인 pip를 이용해서 설치할 수 있다.
$ pip install requests
혹은
$ pip3 install requests
설치가 잘 되었는지 확인해보기 위해 파이썬을 인터프리터 모드로 실행해서 requests 라이브러리를 사용해보자.
$ python
Python 3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests.get("https://naver.com")
<Response [200]>
응답코드 200을 받으며 정상적으로 네이버에 접속할 수 있다.
REST API 호출
requests 라이브러리는 HTTP 요청 이름에 해당하는 함수를 제공한다.
requests.get() # GET 요청
requests.post() # POST 요청
requests.put() # PUT 요청
requests.delete() # DELETE 요청
예를 들어 GET 요청의 경우 다음과 같이 요청을 전송할 수 있다.
headers = {'Content-Type': 'application/json; charset=utf-8'}
response = requests.get(url, headers=headers)
GET 요청에 파라미터를 전달하고 싶은 경우는 다음과 같이 전달한다.
params = {'param1': 'value1', 'param2': 'value'}
response = requests.get(url, params=params)
데이터를 함께 보내야하는 경우 다음과 같이 데이터를 전송할 수 있다.
body = {
"key1" : "value1",
"key2" : "value2"
}
response = requests.post(url, headers=headers, data=json.dump(body))
requests를 이용해 REST API 호출이 성공하면 reponse 객체가 담겨나온다.
쿠키를 심어서 요청을 보낼 수도 있다.
headers = {'Content-Type': 'application/json; charset=utf-8'}
cookies = {'session_id': 'mysessionid'}
response = requests.get(URL, headers=headers, cookies=cookies)
응답(Response) 객체
response 객체 담겨있는 정보는 다음과 같다.
속성 | 설명 |
status_code | 응답 상태 코드 |
headers | 헤더 정보를 확인할 수 있음 |
cookies | 쿠키 정보를 확인할 수 있음 |
encoding | 데이터의 인코딩을 확인할 수 있음 |
text | str 타입의 데이터인 경우 |
content | bytes 타입의 데이터인 경우 |
.json() | dic 타입의 데이터일 경우 사용 |
대충 이정도만 쓸 줄 알아도 REST API를 이용한 파이썬 코드를 손쉽게 작성할 수 있다.
댓글