GITHUB_PR_NUMBER: 9742 GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/9742 PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9725 Co-authored-by: LW <5601392+llllvvuu@users.noreply.github.com> GitOrigin-RevId: 9f16b267e190c44bc17e77ca4db714d3aba4df47
12 KiB
Hasura GraphQL Engine
Hasura GraphQL Engine adalah sebuah server GraphQL ultra-cepat yang menyediakan API GraphQL instan dan real-time diatas Postgres, dengan pemicu webhook pada event basis data, dan skema jarak jauh untuk mengimplementasi logika bisnis.
Hasura dapat membantu Anda membangun aplikasi berbasis GraphQL dengan Postgres atau membantu aplikasi yang sudah ada untuk berpindah ke GraphQL secara bertahap.
Baca lebih lanjut di hasura.io dan dokumentasinya.
Fitur
- Buat query yang andal: Tersedia query bawaan untuk menyaring, mengatur halaman, mencari pola, menyisipkan banyak sekaligus, pembaruan, penghapusan data.
- Realtime: Ubah query GraphQL biasa menjadi live query dengan menggunakan subscriptions.
- Gabungkan skema jarak jauh: Akses skema custom GraphQL untuk logika bisnis melalui sebuah GraphQL Engine endpoint. (Baca lebih lanjut).
- Picu webhooks atau fungsi serverless: Pada event penyisipan/perbaruan/penghapusan data di Postgres. (Baca lebih lanjut)
- Dapat bekerja dengan basis data yang telah ada sebelumnya: Arahkan pada sebuah basis data Postgres yang telah ada sebelumnya untuk mendapatkan API GraphQL yang dapat langsung digunakan.
- Kontrol akses yang sangat terukur: Kontrol akses yang dinamik yang terintegrasi dengan sistem otentikasi semisal auth0 atau firebase-auth.
- Performa tinggi & rekam jejak yang kecil: Docker image sebesar ~15MB; ~50MB RAM pada 1000 req/detik; sadar multi-core.
- Antarmuka untuk admin & proses migrasi: Antarmuka untuk admin & proses migrasi yang terinspirasi dari Rails.
- Postgres ❤️: Mendukung types dari Postgres (PostGIS/geo-location, dll.), ubah views menjadi graphs, memicu fungsi tersimpan (stored functions) atau prosedur dengan mutasi.
Baca lebih lanjut di hasura.io dan dokumentasinya.
Daftar isi
Daftar isi
- Mulai dengan cepat:
- Arsitektur
- Kakas pada sisi klien
- Tambahkan logika bisnis
- Demo
- Dukungan & Penyelesaian masalah
- Berkontribusi
- Aset merek
- Lisensi
Mulai dengan cepat:
Jalankan dengan satu klik di Heroku
Cara paling cepat untuk mencoba Hasura adalah menggunakan Heroku.
-
Klik pada tombol dibawah ini untuk menjalankan GraphQL Engine di Heroku dengan add-on Postgres secara gratis:
-
Buka konsol Hasura
Kunjungi
https://<nama-aplikasi>.herokuapp.com
(ganti <nama-aplikasi> dengan nama aplikasi Anda) untuk membuka konsol admin. -
Buat query GraphQL pertama Anda
Buat sebuah tabel dan langsung jalankan query pertama Anda. Ikuti petunjuk sederhana ini.
Pilihan menjalankan aplikasi dengan satu klik lainnya
Coba lihat pilihan lainnya untuk menjalankan aplikasi dengan satu klik:
Penyedia infrastruktur | Tautan satu klik | Informasi tambahan |
---|---|---|
DigitalOcean | dokumentasi | |
Azure | dokumentasi |
Metode menjalankan lainnya
Untuk menjalankan berbasis Docker dan konfigurasi lebih lanjut, coba lihat petunjuk menjalankan atau manifestasi instalasi.
Arsitektur
Hasura GrapQL Engine berada didepan sebuah basis data Postgres dan dapat menerima permintaan berbasis GraphQL dari aplikasi Anda. Hasura dapat dikonfigurasi untuk bekerja dengan sistem otentikasi yang telah Anda miliki dan dapat mengontrol akses menggunakan aturan pada level field dengan variabel dinamis dari sistem otentikasi Anda.
Anda juga dapat menggabungkan skema GraphQL dan menyediakn sebuah API GraphQL yang terintegrasi.
Kakas pada sisi klien
Hasura dapat tersambung dengan baik menggunakan kakas klien GraphQL apa saja. Kami merekomendasikan untuk menggunakan Apollo Client. Coba lihat awesome-graphql untuk melihat daftar klien.
Tambahkan logika bisnis
GraphQL Engine menyediakan metode yang gampang masuk akal, terukur, dan andal dalam menambahkan logika bisnis custom pada backend Anda.
Skema jarak jauh
Tambahkan custom resolvers pada sebuah skema jarak jauh berdampingan dengan skema GraphQL berbasis Postgres dari Hasura. Hal ini ideal untuk kasus ketika misalnya menambahkan API pembayaran, atau meng-query data yang tidak berada pada basis data Anda - baca lebih lanjut.
Picu webhooks pada event basis data
Tambahkan logika bisnis asinkron yang dipicu oleh event basis data. Ideal untuk notifikasi, pipeline data dari Postgres, atau pemrosesan secara asinkron - baca lebih lanjut.
Data turunan atau transformasi data
Transformasi data di Postgres atau jalankan logika bisnis untuk menghasilkan set data turunan lainnya yang dapat di-query menggunakan GraphQL Engine - baca lebih lanjut.
Demo
Coba lihat seluruh contoh aplikasi pada direktori hasura/sample-apps.
Aplikasi realtime
-
Aplikasi chat untuk grup yang dibuat menggunakan React. Termasuk indikator pengetikan, pengguna online & notifikasi pesan baru.
-
Aplikasi pelacak yang menyiarkan lokasi secara langsung dengan memperlihatkan kendaraan berjalan dengan posisi koordinat GPS yang berubah-ubah pada peta.
-
Sebuah dasbor realtime untuk meng-agregasi data yang berubah secara terus menerus.
Video
- Tambahkan GraphQL pada sebuah instance Gitlab yang di-hosting sendiri (3:44 menit)
- Aplikasi Todo dengan Auth0 dan backend GraphQL (4:00 menit)
- GraphQL di GitLab yang terintegrasi dengan GitLab auth (4:05 menit)
- Dasbor untuk 10 juta kendaraan dengan geolokasi (PostGIS, Timescale) (3:06 menit)
Dukungan & Penyelesaian masalah
Dokumentasi & komunitas Hasura dapat membantu menyelesaikan sebagian besar masalah Anda. Jika Anda menemukan sebuah bug atau memerlukan kontak langsung, Anda dapat mengontak kami melalui salah satu cara dibawah ini:
- Dukungan & feedback: Discord
- Permasalahan & pelacakan bug: GitHub issues
- Ikuti perkembangan produk: @HasuraHQ
- Bicara dengan kami melalui website chat
Kami berkomitmen untuk membina lingkungan yang terbuka dan menyambut komunitas. Silakan lihat Kode Etik.
Jika Anda ingin melaporkan sebuah permasalahan keamanan, mohon baca ini.
Berkontribusi
Coba lihat petunjuk berkontribusi kami untuk detail lebih lanjut.
Aset merek
Aset merek Hasura (logo, maskot, lencana powered by, dll.) dapat ditemukan di direktori assets/brand. Jangan ragu untuk menggunakannya pada aplikasi/website Anda. Kami akan sangat senang jika Anda menambahkan lencana "Powered by Hasura" di aplikasi yang dibangun menggunakan Hasura. ❤️
<!-- Untuk dasar berwarna terang -->
<a href="https://hasura.io">
<img width="150px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg" />
</a>
<!-- Untuk dasar berwarna gelap -->
<a href="https://hasura.io">
<img width="150px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_white.svg" />
</a>
Lisensi
Bagian utama dari GraphQL Engine tersedia dengan lisensi Apache License 2.0 (Apache-2.0).
Seluruh konten lainnya (selain dari direktori server
, cli
dan
console
) tersedia dalam lisensi MIT License.
Hal ini meliputi seluruh direktori docs
dan community
.