Disini saya akan membahas mengenai pemasangan GraphQL di Django Framework. Jika kalian belum memahami apa itu GraphQL, kalian bisa baca di website officialnya disini https://graphql.org/.
Sedangkan Django Framework adalah framework yang dibangun dengan menggunakan bahasa Python. Disini saya menggunakan OS Ubuntu 18 dan Django Versi 1.11 dengan Python Versi 2.7
Pertama kalian aktif didalam environment kalian dan install graphene :
Setelah di install, sekarang edit file settings.py kalian dan tambahkan seperti dibawah ini :pip install "graphene-django>=2.0"
INSTALLED_APPS = (Lalu buka file urls.py kalian, dan tambahkan seperti dibawah ini :
# ...
'graphene_django',
)
GRAPHENE = {
'SCHEMA': 'perpus.schema.schema' # Where your Graphene schema lives
}
from django.conf.urls import url
from graphene_django.views import GraphQLView
urlpatterns = [
# ...
url(r'^graphql', GraphQLView.as_view(graphiql=True)),
]
Dan sekarang kita akan melakukan editing dan penambahan file di bagian app. Sebagai contoh saya mempunyai aplikasi/app bernama perpus dan modul yang bernama globalmasters dan secara default pasti mempunyai admin.py dan model.py. Ikuti tahapan dibawah ini :
- 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):setelah itu buka file schema.py yang sudah kita buat tadi dan isi dengan script dibawah ini :
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
from globalmasters.models import ZipcodeSetelah langkah diatas selesai, kini kalian buat file schema.py lagi didalam folder aplikasi (contoh:perpus) yang didalam foldernya ada settings.py.
from graphene import ObjectType, Node, Schema
from graphene_django.fields import DjangoConnectionField
from graphene_django.types import DjangoObjectType
class zipcodeNode(DjangoObjectType):
class Meta:
model = Zipcode
interfaces = (Node, )
class Query(ObjectType):
zipcode = Node.Field(zipcodeNode)
all_zipcodes = DjangoConnectionField(zipcodeNode)
schema = Schema(query=Query)
File tersebut isi dengan script dibawah ini :
import globalmasters.schemaSekarang coba kalian running django kalian, dan untuk ke graphql nya kalian tambahkan slash
import graphene
from graphene_django.debug import DjangoDebug
class Query(globalmasters.schema.Query, graphene.ObjectType):
debug = graphene.Field(DjangoDebug, name='__debug')
schema = graphene.Schema(query=Query)
localhost:8000/graphqlJika 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{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.
allZipcodes{
edges{
node{
provinsi
kabupaten
kecamatan
kelurahan
kodepos
}
}
}
}
Dibawah ini adalah milik saya yan sudah berhasil jalan graphql nya.
Untuk berkenalan tentang teknil Graphqlnya sendiri akan ada pembahasan lain ya, seperti menampilkan data limit, relasi dll.
0 Comment for "Integration GraphQL with Django Framework"