Membina backends yang kuat sering melibatkan pengekodan yang luas untuk operasi CRUD, kebenaran, dan logik perniagaan-proses yang memakan masa. Artikel ini meneroka bagaimana Hasura dan PostgreSQL menyelaraskan pembangunan backend, membolehkan aplikasi yang lebih cepat dilancarkan dengan usaha pengekodan yang minimum.
Hasura, enjin GraphQL sumber terbuka, secara automatik menghasilkan API GraphQL dan REST dari skema pangkalan data anda. Ia menyokong pemodelan data, pertanyaan masa nyata, pengaturcaraan acara, kebenaran berasaskan peranan, dan pelaksanaan logik perniagaan tersuai melalui tindakan GraphQL.
PostgreSQL, pangkalan data relasi sumber terbuka yang kuat, menawarkan ciri-ciri peringkat perusahaan yang setanding dengan Oracle dan Microsoft SQL Server, menjadikannya pilihan yang boleh dipercayai untuk aplikasi berskala besar. Penggunaannya oleh syarikat -syarikat seperti Netflix dan Spotify menggariskan keupayaannya. Walaupun Hasura menyokong pangkalan data lain, artikel ini memberi tumpuan kepada PostgreSQL kerana kebolehaksesan dan sifat sumber terbuka. Sokongan MySQL dirancang.
Panduan ini menyoroti ciri Hasura untuk membina backends berskala untuk aplikasi web dan mudah alih. Ia juga menunjukkan bagaimana keupayaan PostgreSQL, yang diakses melalui SQL, boleh melakukan perhitungan dan analisis yang kompleks, mengurangkan keperluan untuk kod sisi pelayan tersuai.
Kelebihan utama:
pembangunan backend yang cepat: - API Auto yang dihasilkan oleh Hasura dengan ketara mengurangkan masa pengekodan.
POSTRESQL POWER: - Leverage Ciri -ciri canggih PostgreSQL (Warisan Jadual, Kawalan Konvensyen, Jenis Data JSON/Spatial) untuk integriti dan prestasi data yang dipertingkatkan.
Keupayaan masa nyata: - pertanyaan masa nyata Hasura, pengaturcaraan acara, dan kebenaran berasaskan peranan membuat aplikasi yang sangat responsif.
Penyebaran mudah: - Menyediakan Hasura Menggunakan Docker untuk Pembangunan Tempatan atau Hasura Cloud untuk aplikasi berskala, selamat, diedarkan secara global dengan ciri -ciri seperti pemantauan dan caching.
Konsol Web Komprehensif: - Menguruskan pemodelan data, operasi CRUD, dan pertanyaan kompleks dalam konsol web intuitif Hasura. Gabungkan dengan pengesahan dan penyedia storan fail.
aliran kerja yang diselaraskan: - Gunakan alat penghijrahan Hasura dan pementasan persekitaran untuk peralihan lancar antara pembangunan dan pengeluaran, menyokong CI/CD.
Mengapa Pilih PostgreSql?
Pangkalan data relasi seperti kelebihan PostgreSQL menawarkan kelebihan ke atas jenis pangkalan data lain, termasuk pemodelan skema, menyertai operasi, dan urus niaga asid -penting untuk integriti data. PostgreSQL terus cemerlang dengan:
- warisan jadual: pemodelan data yang cekap.
- Kawalan Concurrency Advanced: Mengendalikan data volum tinggi menulis dengan berkesan dalam persekitaran pelbagai pengguna.
- Toleransi kesalahan dan integriti data: mengurangkan risiko rasuah data.
- Jenis data unik: menyokong jenis data JSON dan spatial, bermanfaat untuk pelbagai aplikasi.
PostgreSQL juga bertindak sebagai pelayan pengiraan, melaksanakan fungsi tersuai dan pencetus untuk tugas analisis, menghapuskan keperluan untuk kod pelayan yang berasingan. Ini dicapai dengan menggunakan:
- Pandangan: Memudahkan pertanyaan kompleks.
- Fungsi & Operator: Melaksanakan pemformatan tarikh, pemadanan corak, dan operasi aritmetik.
- sambungan: melanjutkan fungsi PostgreSQL (mis., Postgis).
- Bahasa prosedur: Tulis fungsi yang ditentukan pengguna dan prosedur yang disimpan (mis., PL/PGSQL).
Hasura mendedahkan logik PostgreSQL ini melalui GraphQL, menjadikannya mudah diakses dengan aplikasi frontend.
Contoh PostgreSQL:
- Contoh 1 (Pengguna Online View): Pandangan untuk mengambil pengguna sekarang aktif:
<code class="language-sql">CREATE OR REPLACE VIEW "public"."online_users" AS
SELECT users.id, users.last_seen
FROM users
WHERE (users.last_seen >= (now() - '00:00:30'::interval));</code>
- Contoh 2 (geolokasi dengan postgis): Cari kedai dalam radius 1000 meter:
<code class="language-sql">SELECT id, name, address, geom
FROM Seattle_Starbucks
WHERE ST_DWithin(geom, ST_MakePoint(-122.325959,47.625138)::geography, 1000);</code>
Apa itu HASURA?
Hasura adalah enjin graphQL sumber terbuka, masa nyata yang menghasilkan API untuk pangkalan data anda. Konsol webnya membolehkan:
Pemodelan skema - : Buat jadual, tentukan hubungan, dan menguruskan data.
- Operasi CRUD: Lakukan Buat, Baca, Kemas kini, dan Padam Tindakan.
- Kawalan akses berasaskan peranan: Melaksanakan keizinan berbutir.
- Graphql/Rest Endpoint Penciptaan: menghasilkan API untuk data anda.
pelaksanaan SQL: - Jalankan pertanyaan SQL tersuai.
Tindakan & pencetus Definisi: - Automatikkan tugas dan mengendalikan peristiwa.
Nota: Hasura memerlukan integrasi dengan penyedia pengesahan berasingan (mis., Auth0, Firebase) dan perkhidmatan storan fail. NHOST menawarkan penyelesaian bersepadu.
Pelancaran hasura:
- Docker: disyorkan untuk pembangunan tempatan, menawarkan persediaan mudah dan tiada kadar mengehadkan.
- Hasura Cloud: Memudahkan penggunaan dengan skalabilitas, keselamatan, dan pengedaran global, termasuk pemantauan dan ciri caching. Tier percuma boleh didapati dengan batasan.
Ciri -ciri Hasura (🎜 🎜> Hasura (gambaran terperinci):
Pengurus Data: Pereka skema visual untuk membuat jadual, menentukan hubungan, dan menguruskan jenis data (termasuk JSON dan jenis tersuai). -
Kebenaran: Kawalan akses berasaskan peranan dengan keizinan berbutir untuk memasukkan, memilih, mengemas kini, dan memadam operasi. -
Pertanyaan: Jalankan pelbagai pertanyaan GraphQL (mudah, bersarang, agregasi, penapisan) secara langsung dalam konsol. -
Mutasi: Lakukan memasukkan, upsert, kemas kini, dan padam operasi dengan sokongan untuk urus niaga. -
langganan:
Melaksanakan kemas kini data masa nyata menggunakan langganan GraphQL melalui WebSockets. -
Skema jauh:
Bersepadu dengan API pihak ketiga untuk data dan logik. -
Tindakan:
Laksanakan logik perniagaan tersuai melalui webhooks menggunakan mana -mana bahasa pengaturcaraan. -
Pencetus acara:
Memohon webhooks berdasarkan peristiwa pangkalan data (masukkan, kemas kini, padam). Menyokong penyerahan manual. -
Pencetus yang dijadualkan:
Jalankan tugas secara berkala (cron) atau sekali (satu kali) melalui webhooks. -
Migrasi dan persekitaran: Menguruskan perubahan skema menggunakan fail migrasi untuk pangkalan data dan metadata Hasura, menyokong aliran kerja CI/CD. -
Pilihan penempatan:
Hasura Cloud: Penyebaran Pengeluaran paling mudah. -
hosting luaran:
heroku, lautan digital, render, azure, kubernet, AWS (lebih kompleks). -
nhost:
penyelesaian semua-dalam-one termasuk PostgreSQL, Hasura, Pengesahan, dan Penyimpanan. -
Ringkasan:
Hasura dan PostgreSQL menawarkan kombinasi yang kuat untuk pembangunan backend pesat. Usaha pengekodan yang dikurangkan, keupayaan masa nyata, dan ciri-ciri yang mantap menjadikannya penyelesaian yang menarik untuk membina aplikasi berskala dan boleh dipelihara. Walaupun tidak seperti ciri-ciri seperti beberapa alternatif dalam setiap aspek, kemudahan penggunaannya, fokus pada prestasi, dan sifat sumber terbuka adalah kelebihan yang signifikan.
Soalan Lazim (Soalan Lazim): (Soalan Lazim yang disediakan sudah komprehensif dan ditulis dengan baik; tiada pengubahsuaian diperlukan.)
Atas ialah kandungan terperinci Cara Membina Backend Anda Dengan Hasura dan PostgreSQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!