pip install “graphene-django>=2.0”
Setelah di install, sekarang edit file settings.py kalian dan tambahkan seperti dibawah ini :
INSTALLED_APPS = (
# …
‘graphene_django’,
)GRAPHENE = {
‘SCHEMA’: ‘perpus.schema.schema’ # Where your Graphene schema lives
}
Lalu buka file urls.py kalian, dan tambahkan seperti dibawah ini :
from django.conf.urls import url
from graphene_django.views import GraphQLViewurlpatterns = [
# …
url(r’^graphql’, GraphQLView.as_view(graphiql=True)),
]
- Buat file baru bernama schema.py di dalam folder globalmasters
- Buka file bernama model.py dan lihat script model punya saya, (kita hanya bekerja di 1 tabel ya.
class Zipcode (models.Model):
STATUS_CHOICES = (
(‘Y’, ‘Enabled’),
(‘N’, ‘Disabled’),
)
kelurahan = models.CharField(verbose_name=”Kelurahan”, max_length=250, blank=False)
kecamatan = models.CharField(verbose_name=”Kecamatan”, max_length=250, blank=False)
kabupaten = models.CharField(verbose_name=”Kabupaten”, max_length=250, blank=False)
provinsi = models.CharField(verbose_name=”Provinsi”, max_length=250, blank=False)
kodepos = models.CharField(verbose_name=”Kodepos”, max_length=6, blank=False)def __unicode__(self):
return self.kodepos
setelah itu buka file schema.py yang sudah kita buat tadi dan isi dengan script dibawah ini :
from globalmasters.models import Zipcode
from graphene import ObjectType, Node, Schema
from graphene_django.fields import DjangoConnectionField
from graphene_django.types import DjangoObjectTypeclass zipcodeNode(DjangoObjectType):
class Meta:
model = Zipcode
interfaces = (Node, )class Query(ObjectType):
zipcode = Node.Field(zipcodeNode)
all_zipcodes = DjangoConnectionField(zipcodeNode)schema = Schema(query=Query)
Setelah langkah diatas selesai, kini kalian buat file schema.py lagi didalam folder aplikasi (contoh:perpus) yang didalam foldernya ada settings.py.
File tersebut isi dengan script dibawah ini :
import globalmasters.schema
import graphene
from graphene_django.debug import DjangoDebugclass Query(globalmasters.schema.Query, graphene.ObjectType):
debug = graphene.Field(DjangoDebug, name=’__debug’)schema = graphene.Schema(query=Query)
Sekarang coba kalian running django kalian, dan untuk ke graphql nya kalian tambahkan slash
localhost:8000/graphql
Jika sudah tampil seperti dibawah ini bearti kalian sudah berhasil memasang engine graphql di django kalian.
Sekarang coba dengan skema query menggunakan node, contoh nya dibawah ini :
query{
allZipcodes{
edges{
node{
provinsi
kabupaten
kecamatan
kelurahan
kodepos
}
}
}
}
Pada keterangan diatas disana saya mengquery mengdaaagunakan metode node dimana nama parameternya adalah allZipcodes dan didalam node nya tuliskan nama nama fieldnya yang hendak kalian tampilkan.
Dibawah ini adalah milik saya yan sudah berhasil jalan graphql nya.