7.2 FlaskとGrapheneを使ったGraphQLAPIの実装 #
Flaskと、GraphQLライブラリであるGrapheneを使用して、GraphQL APIを実装する方法を説明します。
必要なパッケージのインストール #
まず、必要なパッケージをインストールしましょう。新しいPython環境を作成し、次のコマンドを実行します:
$ pip install flask
$ pip install graphene
$ pip install flask-graphql
Flaskアプリの設定 #
まず、最も基本的なFlaskアプリを設定します:
from flask import Flask
app = Flask(__name__)
GraphQLスキーマの定義 #
次に、GraphQLスキーマを定義します。GraphQLのスキーマは、APIで使用可能なクエリとその戻り値の型を定義します。
以下は簡単なスキーマの例です:
import graphene
class Query(graphene.ObjectType):
hello = graphene.String(description='A typical hello world')
def resolve_hello(self, info):
return 'World'
schema = graphene.Schema(query=Query)
上記のスキーマでは、“hello"というクエリを定義し、文字列を返すことができます。“resolve_hello"関数は、クエリが実行されるときに呼び出され、戻り値はクエリの結果として使用されます。
GraphQLエンドポイントの作成 #
次に、Flask-GraphQLを使用して、GraphQLエンドポイントを作成します:
from flask_graphql import GraphQLView
app.add_url_rule(
'/graphql',
view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True)
)
上記のコードでは、"/graphql"パスにエンドポイントを作成し、先ほど作成したスキーマを使用しています。“graphiql"パラメータをTrueに設定すると、GraphiQLという内蔵のGraphQLエディタを使用することができます。
Flaskアプリの実行 #
最後に、アプリを実行します:
if __name__ == '__main__':
app.run()
これで、ブラウザで"http://localhost:5000/graphql"にアクセスすると、GraphQLエディタが表示され、“hello"クエリを試すことができます:
query {
hello
}
これを実行すると、次のような結果が得られます:
{
"data": {
"hello": "World"
}
}
以上が、FlaskとGrapheneを使ったGraphQL APIの基本的な実装方法です。