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 쿼리를 실행하려면 다음 단계를 따르세요.
http://localhost:5000/graphql
으로 이동합니다.- 좌측 창에 다음 쿼리를 작성합니다.
query {
hello
}
- 우측 창에 실행 결과를 확인합니다.
{'data': {'hello': 'Hello, GraphQL!'}}
와 같은 결과가 나와야 합니다.
결론
이 글에서는 Flask 애플리케이션에서의 GraphQL 서버 구현에 대해 살펴보았습니다. Flask와 GraphQL을 함께 사용하면 간편하고 강력한 API 서버를 구축할 수 있습니다. Flask-GraphQL 패키지를 사용하면 더욱 편리하게 GraphQL 서버를 구현할 수 있습니다.