Ariadne adalah perpustakaan Python untuk mengimplementasikan server GraphQL.
Skema-pertama: Ariadne memungkinkan pengembang Python menggunakan pendekatan skema-pertama untuk implementasi API. Ini adalah pendekatan terdepan yang digunakan oleh komunitas GraphQL dan didukung oleh lusinan alat pengembang frontend dan backend, contoh, dan sumber belajar. Ariadne membuat semua ini segera tersedia untuk Anda dan anggota tim Anda yang lain.
Sederhana: Ariadne menawarkan API yang kecil, konsisten, dan mudah diingat sehingga memungkinkan pengembang fokus pada masalah bisnis, bukan pada boilerplate.
Terbuka: Ariadne dirancang bersifat modular dan terbuka untuk penyesuaian. Jika Anda kehilangan atau tidak puas dengan sesuatu, perpanjang atau tukar dengan milik Anda dengan mudah.
Dokumentasi tersedia di sini.
API yang sederhana, cepat dipelajari dan mudah dihafal.
Kompatibilitas dengan GraphQL.js versi 15.5.1.
Kueri, mutasi, dan tipe masukan.
Penyelesai asinkron dan eksekusi kueri.
Langganan.
Skalar khusus, enum, dan arahan skema.
Serikat pekerja dan antarmuka.
Unggahan berkas.
Mendefinisikan skema menggunakan string SDL.
Memuat skema dari file .graphql
, .gql
, dan .graphqls
.
Middleware WSGI untuk mengimplementasikan GraphQL di situs yang ada.
Ekstensi Apollo Tracing dan OpenTracing untuk pemantauan API.
Ikut sertakan pemetaan penyelesai otomatis antara camelCase
dan snake_case
, dan dekorator fungsi @convert_kwargs_to_snake_case
untuk mengonversi kwargs camelCase
menjadi snake_case
.
Server pengembang sinkron sederhana bawaan untuk eksperimen GraphQL cepat dan GraphQL Playground.
Dukungan untuk ekstensi Apollo GraphQL untuk Visual Studio Code.
Validasi sintaks GraphQL melalui fungsi pembantu gql()
. Juga menyediakan pewarnaan jika ekstensi Apollo GraphQL diinstal.
Tidak ada registri negara atau objek global, dukungan untuk beberapa API GraphQL dalam basis kode yang sama dengan penggunaan kembali tipe eksplisit.
Dukungan untuk Apollo Federation
.
Ariadne dapat diinstal dengan pip:
pip instal ariadne
Ariadne membutuhkan Python 3.7 atau lebih tinggi.
Contoh berikut membuat API yang menentukan tipe Person
dan bidang kueri tunggal people
yang mengembalikan daftar dua orang. Itu juga memulai server pengembang lokal dengan GraphQL Playground yang tersedia di alamat http://127.0.0.1:8000
.
Mulailah dengan menginstal uvicorn, server ASGI yang akan kita gunakan untuk melayani API:
pip instal uvicorn
Kemudian buat file example.py
untuk contoh aplikasi Anda:
from ariadne import ObjectType, QueryType, gql, make_executable_schemafrom ariadne.asgi import GraphQL# Mendefinisikan tipe menggunakan Schema Definition Language (https://graphql.org/learn/schema/)# Membungkus string dalam fungsi gql memberikan validasi dan kesalahan yang lebih baik tracebacktype_defs = gql (""" ketik Kueri { orang: [Orang!]! } ketik Orang { Nama Depan: String Nama Belakang: String age: Int fullName: String }""")# Memetakan fungsi penyelesai ke bidang Kueri menggunakan QueryTypequery = QueryType()# Resolver adalah fungsi python [email protected]("people")def resol_people(*_):return [ {"firstName": "John", "lastName": "Doe", "usia": 21}, {"firstName": "Bob", "lastName": "Boberson", "usia": 24}, ]# Memetakan fungsi penyelesai ke bidang tipe khusus menggunakan ObjectTypeperson = ObjectType("Person")@person.field("fullName")def resol_person_fullname(person, *_):return "%s %s" % (person["firstName" ], person["lastName"])# Buat skema GraphQL yang dapat dieksekusi = make_executable_schema(type_defs, query, person)# Buat aplikasi ASGI menggunakan skema, berjalan dalam mode debugapp = GraphQL(skema, debug=True)
Akhirnya jalankan server:
contoh uvicorn: aplikasi
Untuk panduan dan contoh lebih lanjut, silakan lihat dokumentasi.
Kami menyambut kontribusi untuk Ariadne! Jika Anda menemukan bug atau masalah, silakan gunakan masalah GitHub. Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk menghubungi kami di diskusi GitHub.
Untuk panduan dan instruksi, silakan lihat CONTRIBUTING.md.
Situs web dan dokumen memiliki repositori GitHub sendiri: mirumee/ariadne-website
Pastikan juga Anda mengikuti @AriadneGraphQL di Twitter untuk pembaruan terkini, berita, dan renungan acak!
Dibuat dengan ❤️ oleh Mirumee Software [email protected]