Dalam get laluan API, menggunakan fungsi Golang untuk mengesahkan parameter permintaan API boleh: Menghalang input yang tidak sah atau berniat jahat daripada memasuki sistem bahagian belakang. Sahkan bahawa isi permintaan kosong. Sahkan bahawa medan yang diperlukan wujud. Sahkan bahawa medan berangka ialah nombor. Sahkan bahawa medan rentetan mematuhi ungkapan biasa. . Gerbang API ialah lapisan perantara yang mengurus trafik API dan menyediakan ciri keselamatan seperti pengesahan parameter. Tutorial ini akan membimbing anda tentang cara menggunakan fungsi Golang untuk mengesahkan parameter permintaan API dalam Gerbang API.
Prasyarat
Persekitaran Golang yang dipasang
Gerbang API yang digunakan Pengetahuan pengaturcaraan Golang asas
Sediakan projek baharu
:Sediakan projek baharugo mod init my-validation-function
import ( "context" "errors" "fmt" "net/http" "regexp" "strconv" "github.com/cloudevents/sdk-go/v2/event" )
Tulis fungsi Golang
func validate(ctx context.Context, event event.Event) (*http.Response, error) { // 获取HTTP请求正文 request := event.HTTP body := request.Body // 验证请求正文的必需字段 if body == nil || len(body) == 0 { return nil, errors.New("request body is empty") } // 获取字段值 name := request.URL.Query().Get("name") age := request.URL.Query().Get("age") // 验证字段值 if name == "" { return nil, errors.New("name is required") } if age == "" { return nil, errors.New("age is required") } // 验证age是否为数字 if _, err := strconv.Atoi(age); err != nil { return nil, errors.New("age must be a number") } // 验证name是否符合正则表达式 nameRegex := regexp.MustCompile("[a-zA-Z]+") if !nameRegex.MatchString(name) { return nil, errors.New("name must contain only letters") } // 返回验证成功的响应 return &http.Response{ StatusCode: http.StatusOK, Body: http.NoBody, }, nil }
Kes praktikal
/validate
yang menerima dua parameter pertanyaan: name
dan age
. Menggunakan fungsi Golang yang kami tulis, anda boleh mengesahkan bahawa input mematuhi peraturan berikut:
Pengesahan ujian
Uji kefungsian pengesahan menggunakan klien atau penyemak imbas REST: /validate
,接收name
和age
两个查询参数。使用我们编写的Golang函数,可以验证输入是否符合以下规则:
name
是必填项,只能包含字母。age
Hantar permintaan dengan parameter yang sah: Hantar permintaan dengan parameter yang tidak sah kesimpulan
Dengan menggunakan fungsi Golang, anda boleh melaksanakan pengesahan parameter yang kukuh dalam get laluan API anda, memastikan kualiti data pada permintaan API dan menghalang potensi kelemahan keselamatan.
Atas ialah kandungan terperinci Menggunakan fungsi Golang untuk pengesahan parameter dalam get laluan API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!