🍌
DjangoでGraphQL
概要
DjangoでGraphqlが使えないか調査していたらgraphene-djangoを見つけたので使ってみました
ゴール
Djangoにgraphene-djangoをインストールしてシンプルなクエリを発行してみる
成果物
サンプルをGitHubにおいておきました
デバッグ用のGUIツールが用意されているので、Docker起動後テストデータを投入しサクッと確認ができました
ポイント
以下のようにGraphQLのスキーマをコードベースで管理できる
Django側でGraphQLのIFを良しなに吸収して貰えるのもお手軽で良い
import graphene
from graphene_django import DjangoObjectType
from .models import Staff, Store
class StoreType(DjangoObjectType):
class Meta:
model = Store
class StaffType(DjangoObjectType):
class Meta:
model = Staff
class Query(graphene.ObjectType):
stores = graphene.List(StoreType)
staffs = graphene.List(StaffType)
def resolve_stores(self, info, **kwargs):
return Store.objects.all()
def resolve_staffs(self, info, **kwargs):
return Staff.objects.all()
schema = graphene.Schema(query=Query)
その他
django以外で使いたい場合は、SQLAlchemy版やGoogle App Engine版もあるので用途に応じて選択も可能でした
Discussion