Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Contoh cara melakukan pengesahan parameter permintaan di Golang

Contoh cara melakukan pengesahan parameter permintaan di Golang

PHPz
PHPzasal
2023-03-30 09:11:381195semak imbas

Golang ialah bahasa pengaturcaraan yang popular sejak beberapa tahun kebelakangan ini. Kemunculannya telah memudahkan pengaturcara untuk membangun, meningkatkan kecekapan pembangunan, dan juga mempunyai ciri yang cekap dan stabil. Di Golang, pengesahan parameter ialah isu penting dan biasa. Artikel ini akan memperkenalkan cara melaksanakan pengesahan parameter permintaan di Golang, membolehkan kami membangunkan aplikasi yang lebih cekap dan stabil.

1. Senario biasa

Semasa pembangunan, selalunya perlu untuk mengesahkan parameter permintaan berdasarkan keperluan sebenar. Sebagai contoh, kami perlu mengesahkan sama ada parameter permintaan ialah alamat e-mel atau kami perlu mengesahkan sama ada parameter permintaan mematuhi format nombor ID. Terdapat beberapa senario lain, seperti perlu mengesahkan sama ada parameter permintaan kosong atau julat nilai, dsb.

2. Kaedah pengesahan parameter tradisional

Dalam kaedah pengesahan parameter tradisional, kami biasanya menggunakan pertimbangan manual untuk menentukan sama ada parameter memenuhi keperluan. Sebagai contoh, kami boleh menggunakan ungkapan biasa untuk mengesahkan format alamat e-mel atau nombor ID. Walau bagaimanapun, kaedah mengesahkan parameter secara manual bukan sahaja memakan masa dan intensif buruh, tetapi juga tidak cukup fleksibel untuk memenuhi keperluan sebenar pelbagai keperluan.

3. Pustaka pengesahan parameter

Untuk menyelesaikan masalah kaedah pengesahan parameter tradisional, beberapa pengaturcara telah membangunkan pelbagai pustaka pengesahan parameter. Pustaka pengesahan ini menyokong pelbagai senario pengesahan parameter, seperti parameter pengesahan jenis rentetan, nombor, tarikh, dsb. Pada masa yang sama, mereka juga menyediakan fungsi pengesahan boleh dikonfigurasikan, membolehkan kami menyesuaikan peraturan pengesahan.

4.gopkg.in/go-playground/validator.v9

Di Golang, kami boleh menggunakan perpustakaan pengesahan gopkg.in/go-playground/validator.v9. Pustaka ini menyediakan beberapa fungsi pengesahan asas, seperti mengesahkan julat berangka, sama ada kosong, dsb., dan juga menyokong fungsi pengesahan tersuai. Berikut ialah contoh:

type User struct {
  Name string `json:"name" validate:"required"`
  Age  int    `json:"age" validate:"gte=0,lte=130"`
}

func CreateUser(w http.ResponseWriter, r *http.Request) {
  decoder := json.NewDecoder(r.Body)
  var user User
  err := decoder.Decode(&user)
  if err != nil {
    http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest)
    return
  }
  validate := validator.New()
  err = validate.Struct(user)
  if err != nil {
    http.Error(w, err.Error(), http.StatusBadRequest)
    return
  }
  // 如果参数校验通过,继续后面的逻辑
}

Dalam contoh ini, kami mentakrifkan struktur bernama Pengguna, yang mengandungi dua medan: Nama dan Umur. Dalam contoh ini, Nama diperlukan dan Umur berkisar antara 0 hingga 130. Apabila parameter dalam badan permintaan tidak memenuhi keperluan di atas, ralat pengesahan akan mengembalikan BadRequest. Apabila pengesahan parameter berjaya, kod akan terus melaksanakan pemprosesan logik perniagaan Ini adalah peranan teras pengesahan parameter.

5. Ringkasan

Artikel ini memperkenalkan kaedah pengesahan parameter permintaan di Golang. Melalui pengesahan parameter, kami boleh memastikan ketepatan logik perniagaan dan mengurangkan risiko perniagaan yang disebabkan oleh parameter bukan standard. Saya harap artikel ini akan membantu pembangunan Golang.

Atas ialah kandungan terperinci Contoh cara melakukan pengesahan parameter permintaan di Golang. 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