[파이썬] Flask에서의 GraphQL 사용

GraphQL은 페이스북에서 개발된 쿼리 언어이자 런타임입니다. GraphQL은 RESTful API를 대체할 수 있는 강력하고 유연한 방법을 제공합니다. 이번 글에서는 Flask에서 GraphQL을 사용하는 방법을 알아보겠습니다.

Flask-GraphQL 설치하기

Flask-GraphQL은 Flask 애플리케이션에서 GraphQL을 사용할 수 있도록 도와주는 라이브러리입니다. Flask-GraphQL을 설치하기 위해 다음 명령을 실행합니다:

pip install flask-graphql

Flask 애플리케이션 설정

Flask 애플리케이션에서 GraphQL을 사용하려면 몇 가지 설정이 필요합니다. 먼저 Flask 앱 객체를 생성합니다:

from flask import Flask
from flask_graphql import GraphQLView

app = Flask(__name__)

다음으로 GraphQL 스키마를 정의합니다. 스키마는 쿼리와 뮤테이션의 유형을 정의하는 역할을 합니다. 아래는 간단한 예시입니다:

from graphene import ObjectType, String, Schema

class Query(ObjectType):
    hello = String(name=String(default_value="World"))

    def resolve_hello(self, info, name):
        return f"Hello {name}!"

schema = Schema(query=Query)

마지막으로 GraphQL 뷰를 Flask 애플리케이션에 등록합니다:

app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True))

이제 Flask 애플리케이션의 설정이 완료되었습니다.

GraphQL 요청 보내기

GraphQL의 강력한 기능 중 하나는 클라이언트가 필요로 하는 데이터를 정확히 요청할 수 있다는 점입니다. GraphQL 요청은 기본적으로 POST 방식으로 보내야 합니다. 아래는 간단한 GraphQL 요청의 예시입니다:

import requests

query = """
    query {
        hello(name: "Alice")
    }
"""

response = requests.post('http://localhost:5000/graphql', json={'query': query})
print(response.json())

위 예시에서는 “Alice”라는 이름으로 hello 쿼리를 보내고 응답을 출력합니다.

결론

Flask에서 GraphQL을 사용하는 방법을 알아보았습니다. Flask-GraphQL을 설치하고 Flask 앱 객체를 생성한 후 스키마를 정의하여 GraphQL을 쉽게 사용할 수 있습니다. GraphQL의 강력한 기능을 활용하여 웹 응용 프로그램을 개발하고 데이터를 효율적으로 요청하는데 도움이 될 것입니다.