[파이썬] `Kivy`에서의 REST API 연동

Kivy는 파이썬으로 안드로이드 및 iOS 애플리케이션을 개발하기 위한 사용자 인터페이스 프레임워크입니다. 이 글에서는 Kivy를 사용하여 REST API를 연동하는 방법에 대해 알아보겠습니다.

필수 패키지 설치

먼저, REST API와 통신하기 위해 requests라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 설치하세요.

pip install requests

REST API 요청 보내기

Kivy에서 REST API를 연동하기 위해 우리는 requests 라이브러리를 사용할 것입니다. 다음은 GET 및 POST 요청을 보내는 예제입니다.

GET 요청

import requests

def get_data():
    url = "https://api.example.com/data"
    response = requests.get(url)
    
    if response.status_code == 200:
        data = response.json()
        # 데이터 처리
    else:
        # 요청 실패 처리

# 사용 예시
get_data()

POST 요청

import requests

def post_data():
    url = "https://api.example.com/data"
    payload = {
        "key1": "value1",
        "key2": "value2"
    }
    response = requests.post(url, json=payload)
    
    if response.status_code == 201:
        # 성공 처리
    else:
        # 요청 실패 처리

# 사용 예시
post_data()

비동기 요청

Kivy 애플리케이션에서는 동기식 요청을 보내지 않도록 주의해야 합니다. 이는 UI가 블로킹되는 것을 방지하기 위함입니다. 대신, REST API 요청은 비동기 방식으로 처리되어야 합니다.

import requests
from kivy.network.urlrequest import UrlRequest

def send_request():
    url = "https://api.example.com/data"
    headers = {
        "Authorization": "Bearer xxxxxx"
    }
    params = {
        "param1": "value1",
        "param2": "value2"
    }
    callback = self.on_request_complete  # 요청 완료 후 호출되는 콜백 함수

    # UrlRequest를 사용하여 비동기 요청 보내기
    request = UrlRequest(url, req_headers=headers, req_body=params, on_success=callback)

def on_request_complete(request, response):
    if response is not None:
        data = response.json()
        # 데이터 처리
    else:
        # 요청 실패 처리

# 사용 예시
send_request()

요약

Kivy를 사용하여 REST API를 연동하는 법에 대해 알아보았습니다. requests라이브러리를 사용하여 GET 및 POST 요청을 보내는 방법을 배웠으며, 비동기 요청을 위해 UrlRequest를 사용하는 방법도 알아봤습니다. 이를 통해 Kivy 애플리케이션에서 REST API와의 통신을 간단하게 구현할 수 있습니다.

더 많은 Kivy 관련 자료와 예제는 Kivy 공식 문서를 참조하시기 바랍니다.

Happy coding!