Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan GraphQL untuk pembangunan API dalam Beego

Menggunakan GraphQL untuk pembangunan API dalam Beego

WBOY
WBOYasal
2023-06-23 11:36:00879semak imbas

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,
      },
    },
  },
)

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) {
  // 获取用户数据
}

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,
})

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)

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:
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