Flask-RESTful은 Python에서 웹 애플리케이션을 개발하는 데 사용되는 프레임워크입니다. 이 프레임워크를 사용하면 간편한 RESTful API를 구축할 수 있습니다. 이 글에서는 Flask-RESTful을 사용하여 외부 데이터 API를 어떻게 연동하는지 알아보겠습니다.
외부 데이터 API 설정하기
먼저 Flask-RESTful 프로젝트를 생성한 후, 외부 데이터 API와 연동하기 위해 필요한 패키지를 설치해야 합니다. 예를 들어, requests
패키지를 사용하여 API 요청을 보내고 응답을 받습니다. 다음 명령을 사용하여 requests
패키지를 설치합니다:
pip install requests
API 요청 보내기
이제 외부 데이터 API와 연동하기 위해 API 요청을 보내는 방법을 알아보겠습니다. 예를 들어, 공개적으로 사용 가능한 날씨 API를 사용하여 날씨 정보를 가져오는 코드를 작성해보겠습니다:
from flask_restful import Resource
import requests
class WeatherResource(Resource):
def get(self, city):
# API 요청을 보낼 URL
url = f"https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q={city}"
try:
# API 요청 보내기
response = requests.get(url)
response_json = response.json()
# 응답 처리
weather = response_json['current']['temp_c']
return {'weather': weather}, 200
except requests.exceptions.RequestException as error:
return {'message': str(error)}, 500
위의 코드에서 WeatherResource
클래스의 get
메서드는 city
매개변수를 받아 해당 도시의 날씨 정보를 가져옵니다. requests
패키지를 사용하여 API 요청을 보내고, 응답을 json
형식으로 변환한 후 필요한 데이터를 추출합니다. 그리고 추출한 데이터를 JSON 형식으로 반환합니다.
API 연동 및 테스트하기
Flask-RESTful 프로젝트에 위에서 작성한 WeatherResource
를 등록하여 API 연동을 완료할 수 있습니다. 다음과 같이 Flask-RESTful의 Api
클래스를 사용하여 API를 등록하는 코드를 작성합니다:
from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app)
api.add_resource(WeatherResource, '/weather/<string:city>')
if __name__ == '__main__':
app.run(debug=True)
위의 코드에서 /weather/<string:city>
는 API의 엔드포인트이며, city
는 도시 이름을 나타내는 변수입니다. 예를 들어, http://localhost:5000/weather/seoul
로 요청을 보내면 서울의 날씨 정보가 반환됩니다.
이제 Flask 애플리케이션을 실행하고 API를 테스트하여 외부 데이터 API와의 연동이 정상적으로 작동하는지 확인할 수 있습니다.
마무리
Flask-RESTful을 사용하여 외부 데이터 API를 연동하는 방법을 살펴보았습니다. 위의 예제에서는 날씨 API를 사용했지만, 다른 외부 API와도 동일한 방식으로 연동할 수 있습니다. Flask-RESTful은 간단하고 효율적인 방법으로 RESTful API를 개발할 수 있는 훌륭한 도구입니다.