Rumah pembangunan bahagian belakang Golang Menggunakan GraphQL untuk pembangunan API dalam Beego

Menggunakan GraphQL untuk pembangunan API dalam Beego

Jun 23, 2023 am 11:36 AM
graphql pembangunan api beego

Menggunakan GraphQL untuk pembangunan API dalam Beego

GraphQL ialah bahasa pertanyaan API moden yang dibangunkan oleh Facebook yang menyediakan cara yang lebih cekap dan fleksibel untuk membina API. Berbeza daripada API RESTful tradisional, GraphQL membenarkan pelanggan mentakrifkan data yang diperlukan, dan pelayan hanya mengembalikan data yang diminta oleh pelanggan, sekali gus mengurangkan penghantaran data yang tidak diperlukan.

Beego ialah rangka kerja web sumber terbuka yang ditulis dalam bahasa Go. Ia menyediakan satu siri alatan dan perpustakaan untuk membangunkan aplikasi web berprestasi tinggi dengan pantas. ORM terbina dalam dan enjin templat Beego menjadikannya sangat mudah dan cekap semasa membangunkan aplikasi web.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan GraphQL untuk pembangunan API dalam Beego.

  1. Pasang GraphQL-go
    Mula-mula, kita perlu memasang GraphQL-go (pustaka pelayan GraphQL yang dilaksanakan dalam bahasa Go).

Pasang menggunakan arahan berikut:

pergi dapatkan github.com/graphql-go/graphql
pergi dapatkan github.com/graphql-go/handler

  1. Buat Skema GraphQL
    Apabila menggunakan GraphQL dalam Beego, kita perlu mentakrifkan Skema untuk menerangkan struktur data. Skema terdiri daripada jenis, sifat dan kaedah.

Berikut ialah takrifan jenis Pengguna ringkas:

var userType = graphql.NewObject(
  graphql.ObjectConfig{
    Name: "User",
    Fields: graphql.Fields{
      "id": &graphql.Field{
        Type: graphql.NewNonNull(graphql.Int),
      },
      "name": &graphql.Field{
        Type: graphql.String,
      },
      "email": &graphql.Field{
        Type: graphql.String,
      },
    },
  },
)
Salin selepas log masuk

Kod di atas mentakrifkan jenis Pengguna dan mengandungi tiga atribut: id, nama dan e-mel. Antaranya, atribut id ialah jenis integer bukan kosong, dan nama serta atribut e-mel ialah jenis rentetan.

Kami juga boleh mentakrifkan kaedah pertanyaan yang mengandungi berbilang Pengguna:

var rootQuery = graphql.NewObject(
  graphql.ObjectConfig{
    Name: "Query",
    Fields: graphql.Fields{
      "users": &graphql.Field{
        Type: graphql.NewList(userType),
        Resolve: func(p graphql.ResolveParams) (interface{}, error) {
          return getUsers()
        },
      },
    },
  },
)

func getUsers() ([]User, error) {
  // 获取用户数据
}
Salin selepas log masuk

Kod di atas mentakrifkan kaedah pertanyaan bernama pengguna, yang akan mengembalikan senarai yang mengandungi berbilang Pengguna. Dalam kaedah Resolve, kami akan memanggil kaedah getUsers untuk mendapatkan data pengguna dan mengembalikannya kepada klien. Memandangkan GraphQL-go menyediakan fungsi menghuraikan parameter Graphql secara automatik, kami tidak perlu mendapatkan parameter permintaan secara manual.

  1. Buat Pengendali GraphQL
    Seterusnya, kita perlu mengikat Skema GraphQL dengan Beego dan mencipta pengendali GraphQL.

Kami boleh menggunakan pengendali HTTP tersuai yang disediakan oleh GraphQL-go untuk pemprosesan. Berikut ialah contoh mudah:

h := handler.New(&handler.Config{
    Schema:   &graphql.Schema{Query: rootQuery},
    Pretty:   true,
    GraphiQL: true,
})
Salin selepas log masuk

Kod di atas mencipta pengendali GraphQL h yang menggunakan Skema yang kami takrifkan (rootQuery), dengan GraphiQL (IDE Web untuk GraphQL) dan ciri pemformatan kod didayakan.

  1. Daftar GraphQL Handler
    Akhir sekali, kami mendaftar GraphQL Handler yang baru kami buat di Beego.

Berikut ialah contoh kod:

beego.Handler("/graphql", h)
Salin selepas log masuk

Kod di atas mengikat pengendali GraphQL h ke laluan "/graphql". Sekarang, lawati "/graphql" dalam penyemak imbas anda untuk membuka GraphiQL dan mula menguji API.

Ringkasan
Dalam artikel ini, kami memperkenalkan cara menggunakan GraphQL untuk pembangunan API dalam Beego. Mula-mula, kami memasang GraphQL-go dan mencipta Skema GraphQL, kemudian menggunakan pengendali HTTP tersuai yang disediakan oleh GraphQL-go untuk mengendalikan permintaan, dan akhirnya mendaftarkan pengendali GraphQL ke dalam laluan Beego.

Fleksibiliti dan kecekapan GraphQL menjadikannya salah satu kaedah pembangunan API yang paling popular hari ini. Menggabungkan ciri prestasi tinggi dan mudah digunakan Beego, kami boleh membina aplikasi web dengan cepat dengan prestasi cemerlang.

Atas ialah kandungan terperinci Menggunakan GraphQL untuk pembangunan API dalam Beego. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan di Beego Menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan di Beego Jun 22, 2023 am 09:06 AM

Dengan peningkatan pengkomputeran awan dan perkhidmatan mikro, kerumitan aplikasi telah meningkat. Oleh itu, pemantauan dan diagnostik menjadi salah satu tugas pembangunan yang penting. Dalam hal ini, Prometheus dan Grafana ialah dua alat pemantauan dan visualisasi sumber terbuka yang popular yang boleh membantu pembangun memantau dan menganalisis aplikasi dengan lebih baik. Artikel ini akan meneroka cara menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan dalam rangka kerja Beego. 1. Pengenalan Beego ialah aplikasi web pembangunan pesat sumber terbuka.

Gunakan Analitis Google untuk mengira data tapak web dalam Beego Gunakan Analitis Google untuk mengira data tapak web dalam Beego Jun 22, 2023 am 09:19 AM

Dengan perkembangan pesat Internet, penggunaan aplikasi Web menjadi semakin biasa Bagaimana untuk memantau dan menganalisis penggunaan aplikasi Web telah menjadi tumpuan pembangun dan pengendali laman web. Google Analytics ialah alat analitis tapak web yang berkuasa yang boleh menjejak dan menganalisis tingkah laku pelawat tapak web. Artikel ini akan memperkenalkan cara menggunakan Google Analitis dalam Beego untuk mengumpul data tapak web. 1. Untuk mendaftar akaun Google Analitis, anda perlu terlebih dahulu

Ralat pengendalian dalam Beego - menghalang ranap aplikasi Ralat pengendalian dalam Beego - menghalang ranap aplikasi Jun 22, 2023 am 11:50 AM

Dalam rangka kerja Beego, pengendalian ralat adalah bahagian yang sangat penting, kerana jika aplikasi tidak mempunyai mekanisme pengendalian ralat yang betul dan lengkap, ia boleh menyebabkan aplikasi itu ranap atau tidak berjalan dengan betul, iaitu untuk projek dan pengguna kami masalah yang sangat serius. Rangka kerja Beego menyediakan satu siri mekanisme untuk membantu kami mengelakkan masalah ini dan menjadikan kod kami lebih teguh dan boleh diselenggara. Dalam artikel ini, kami akan memperkenalkan mekanisme pengendalian ralat dalam rangka kerja Beego dan membincangkan cara ia boleh membantu kami mengelakkan

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Menggunakan ZooKeeper dan Kurator untuk penyelarasan dan pengurusan yang diedarkan di Beego Menggunakan ZooKeeper dan Kurator untuk penyelarasan dan pengurusan yang diedarkan di Beego Jun 22, 2023 pm 09:27 PM

Dengan perkembangan pesat Internet, sistem teragih telah menjadi salah satu infrastruktur dalam banyak perusahaan dan organisasi. Untuk sistem teragih berfungsi dengan baik, ia perlu diselaraskan dan diuruskan. Dalam hal ini, ZooKeeper dan Curator ialah dua alat yang patut digunakan. ZooKeeper ialah perkhidmatan penyelarasan teragih yang sangat popular yang boleh membantu kami menyelaraskan status dan data antara nod dalam kelompok. Kurator ialah enkapsulasi ZooKeeper

Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Jun 23, 2023 am 08:58 AM

Dengan perkembangan pesat Internet, semakin banyak perusahaan telah mula memindahkan aplikasi mereka ke platform awan. Docker dan Kubernetes telah menjadi dua alat yang sangat popular dan berkuasa untuk penggunaan dan pengurusan aplikasi pada platform awan. Beego ialah rangka kerja Web yang dibangunkan menggunakan Golang Ia menyediakan fungsi yang kaya seperti penghalaan HTTP, lapisan MVC, pengelogan, pengurusan konfigurasi dan pengurusan Sesi. Dalam artikel ini kami akan membincangkan cara menggunakan Docker dan Kub

Laksanakan pertanyaan dan manipulasi data API yang cekap menggunakan PHP dan GraphQL Laksanakan pertanyaan dan manipulasi data API yang cekap menggunakan PHP dan GraphQL Jun 25, 2023 am 11:23 AM

Dengan perkembangan teknologi Internet yang berterusan, API telah menjadi cara penting untuk pelbagai perisian untuk berkomunikasi antara satu sama lain. API boleh menyediakan antara muka data bersatu supaya perisian yang berbeza boleh mengakses dan menggunakan antara satu sama lain. Walau bagaimanapun, apabila bilangan dan skala API terus meningkat, cara mengendalikan pertanyaan dan pengendalian data API dengan cepat dan cekap telah menjadi isu penting. Dalam masalah ini, PHP dan GraphQL boleh memberikan penyelesaian yang sangat berkesan. Artikel ini akan memberikan beberapa pengenalan ringkas dan analisis penyelesaian ini. Gambaran keseluruhan PHP

Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Mar 24, 2024 pm 01:15 PM

"Go Language Development Essentials: 5 Syor Rangka Kerja Popular" Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go digemari oleh semakin ramai pembangun. Untuk meningkatkan kecekapan pembangunan dan mengoptimumkan struktur kod, ramai pembangun memilih untuk menggunakan rangka kerja untuk membina aplikasi dengan cepat. Dalam dunia bahasa Go, terdapat banyak rangka kerja yang sangat baik untuk dipilih. Artikel ini akan memperkenalkan 5 rangka kerja bahasa Go yang popular dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan rangka kerja ini dengan lebih baik. 1.GinGin ialah rangka kerja web yang ringan dengan pantas

See all articles