Graphene-Django は、高レベルの Python Web フレームワークである Django と、GraphQL API を構築するためのライブラリである Graphene の間のシームレスな統合を提供するオープンソース ライブラリです。このライブラリを使用すると、開発者は高レベルのパフォーマンスを維持しながら、Django で GraphQL API を迅速かつ効率的に作成できます。
Graphene-Django をインストールするには、次のコマンドを実行します。
pip install graphene-django
インストール後、Django プロジェクトのINSTALLED_APPS
リストに「graphene_django」を追加し、プロジェクトの設定で GraphQL スキーマを定義します。
INSTALLED_APPS = [
# ...
'graphene_django' ,
]
GRAPHENE = {
'SCHEMA' : 'myapp.schema.schema'
}
Graphene-Django を使用するには、Django アプリ ディレクトリにschema.py
ファイルを作成し、GraphQL の型とクエリを定義します。
import graphene
from graphene_django import DjangoObjectType
from . models import MyModel
class MyModelType ( DjangoObjectType ):
class Meta :
model = MyModel
class Query ( graphene . ObjectType ):
mymodels = graphene . List ( MyModelType )
def resolve_mymodels ( self , info , ** kwargs ):
return MyModel . objects . all ()
schema = graphene . Schema ( query = Query )
次に、Django プロジェクトのurls.py
ファイルで GraphQL API を公開します。
from django . urls import path
from graphene_django . views import GraphQLView
from . import schema
urlpatterns = [
# ...
path ( 'graphql/' , GraphQLView . as_view ( graphiql = True )), # Given that schema path is defined in GRAPHENE['SCHEMA'] in your settings.py
]
Graphene-Django は、Django のテスト クライアントを使用した GraphQL API のテストのサポートを提供します。テストを作成するには、Django アプリ ディレクトリにtests.py
ファイルを作成し、テスト ケースを作成します。
from django . test import TestCase
from graphene_django . utils . testing import GraphQLTestCase
from . import schema
class MyModelAPITestCase ( GraphQLTestCase ):
GRAPHENE_SCHEMA = schema . schema
def test_query_all_mymodels ( self ):
response = self . query (
'''
query {
mymodels {
id
name
}
}
'''
)
self . assertResponseNoErrors ( response )
self . assertEqual ( len ( response . data [ 'mymodels' ]), MyModel . objects . count ())
Graphene-Django への貢献はいつでも大歓迎です。まず、リポジトリの問題トラッカーと貢献ガイドラインを確認してください。
Graphene-Django は MIT ライセンスに基づいてリリースされています。
Graphene-Django に関して問題が発生したり質問がある場合は、お気軽に公式 GitHub リポジトリに問題を送信してください。 Discord の Graphene-Django コミュニティで助けを求めたり、経験を共有したりすることもできます。