[파이썬] Flask에서의 GraphQL 서버 구현

GraphQL은 API를 위한 쿼리 언어 및 실행 환경입니다. Flask는 가벼우면서도 강력한 웹 프레임워크로, API 서버를 구축하는 데 매우 적합합니다. Flask와 GraphQL을 함께 사용하여 간단하고 효율적인 API 서버를 구현하는 방법을 살펴보겠습니다.

필수 패키지 설치

먼저, flask-graphql 패키지를 설치해야 합니다. 이 패키지는 Flask와 GraphQL을 연동해주는 역할을 합니다. 다음 명령을 사용하여 설치하세요.

$ pip install flask-graphql

Flask 애플리케이션 설정

Flask 애플리케이션을 설정하기 위해 다음 코드를 사용하세요.

from flask import Flask
from flask_graphql import GraphQLView
import graphene

# Flask 애플리케이션 생성
app = Flask(__name__)

# GraphQL 스키마 정의
class Query(graphene.ObjectType):
    hello = graphene.String()

    def resolve_hello(self, info):
        return 'Hello, GraphQL!'

schema = graphene.Schema(query=Query)

# GraphQLView를 사용하여 라우트 생성
app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True))

if __name__ == '__main__':
    app.run()

위 코드에서는 Flask 애플리케이션을 생성한 후, GraphQL 스키마를 정의합니다. 이 예제에서는 단순히 hello 필드 하나를 가진 Query 타입을 정의했습니다. resolve_hello 메서드는 hello 필드에 대한 해결 함수로, 해당 필드에 대한 값을 반환합니다.

또한, GraphQLView를 사용하여 /graphql 엔드포인트에 라우트를 생성하고, graphiql=True로 설정하여 GraphiQL 웹 인터페이스를 사용할 수 있도록 합니다.

실행

Flask 서버를 시작하려면 터미널에서 다음 명령을 실행하세요.

$ python app.py

서버가 정상적으로 실행되면, http://localhost:5000/graphql에 접속하여 GraphiQL 웹 인터페이스를 사용할 수 있습니다. 여기서는 실행할 쿼리를 작성하고 결과를 확인할 수 있습니다.

쿼리 실행

GraphiQL을 사용하여 GraphQL 쿼리를 실행하려면 다음 단계를 따르세요.

  1. http://localhost:5000/graphql으로 이동합니다.
  2. 좌측 창에 다음 쿼리를 작성합니다.
query {
  hello
}
  1. 우측 창에 실행 결과를 확인합니다. {'data': {'hello': 'Hello, GraphQL!'}}와 같은 결과가 나와야 합니다.

결론

이 글에서는 Flask 애플리케이션에서의 GraphQL 서버 구현에 대해 살펴보았습니다. Flask와 GraphQL을 함께 사용하면 간편하고 강력한 API 서버를 구축할 수 있습니다. Flask-GraphQL 패키지를 사용하면 더욱 편리하게 GraphQL 서버를 구현할 수 있습니다.