오늘은 앞서 살펴본 HTTP Requests의 get()뿐만 아니라 다른 메소드도 알아보려고 한다.
pixela = https://pixe.la/index.html 라는 API 사이트에서 살펴보았다.
post() 메소드
위 메소드는 우리가 API를 통해 데이터를 전달하는게 가능하다.
pixela에서 API 안내문서를 살펴보고 새로운 계정을 가입해보자.
앞서 get()메소드에서는 가져온 데이터를 출력해야했지만, 이번에는 그저 성공인지 아닌지만 알 수있으면 되기 때문에
.text를 사용하여 성공 및 실패 텍스트만 반환하도록 했다.
아래 과정을 통해 우선 회원가입을 성공했다.
USERNAME = ""
TOKEN = ""
pixela_endpoint = "<https://pixe.la/v1/users>"
user_params = {
"token" : TOKEN,
"username" : USERNAME,
"agreeTermsOfService" : "yes",
"notMinor" : "yes"
}
response = requests.post(url=pixela_endpoint, json=user_params)
print(response.text)
다음단계로 그래프를 추가할 수있다.
파라미터에 그래프명, 제목, 단위 수, 단위의 타입, 색상을 전달할 수 있다.
여기서 가장 중요한 headers는 보안을 위해 앞서 생성한 토큰을 post()메소드 내에 headers로 전달해야한다.
graph_endpoint = f"{pixela_endpoint}/{USERNAME}/graphs"
graph_config = {
"id" : "graph1",
"name" : "Health Graph",
"unit" : "minutes",
"type" : "float",
"color" : "momiji"
}
headers = {
"X-USER-TOKEN" : TOKEN
}
response = requests.post(url=graph_endpoint, json=graph_config, headers=headers)
print(response.text)
다음으로 픽셀에 나의 헬스 운동 일지를 기록할 수 있다.
여기서 날짜를 지정할 때 오늘 날짜를 자동화하기 위해 datetime의 strftime을 사용했다.
strftime은 시간을 문자로 변환할 때 사용한다.
pixel_endpoint = f"{pixela_endpoint}/{USERNAME}/graphs/graph1"
today = datetime.now().strftime("%Y%m%d")
headers = {
"X-USER-TOKEN" : TOKEN
}
pixel_params = {
"date" : f"{today}",
"quantity" : "75",
}
response = requests.post(url=pixel_endpoint, json=pixel_params, headers=headers)
print(response.text)
다음메소드는 put()으로 앞서 입력했던 픽셀의 값을 변경할 수있다.