Go 语言前后端通信:HTTP 协议、结构体和 JSON 解析
Go 语言前后端连通可以使用 HTTP 协议进行通信,前端通过发送 HTTP 请求给后端,后端解析请求并进行处理后,再返回响应给前端。
在 Go 语言中,可以使用 net/http 包提供的函数来创建 HTTP 服务器,监听 HTTP 请求,处理请求并返回响应。可以使用以下代码创建一个简单的 HTTP 服务器:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, 'Hello, World!')
})
http.ListenAndServe(":8080", nil)
}
以上代码会创建一个 HTTP 服务器,监听端口 8080,当有 HTTP 请求到达时,会调用回调函数处理请求并返回响应。回调函数中的 http.ResponseWriter 参数用于写入响应数据,http.Request 参数用于读取请求数据。
在处理 HTTP 请求时,需要解析请求数据,可以使用 Go 语言中的结构体来表示请求数据。结构体是一种自定义数据类型,可以用来表示复杂的数据结构。可以使用以下代码定义一个简单的结构体:
type User struct {
Name string `json:'name' `
Email string `json:'email' `
}
以上代码定义了一个 User 结构体,包含 Name 和 Email 两个字段。字段后面的 json:'name' 是一个标签,用于指定该字段在 JSON 格式中的名称。
在处理 HTTP 请求时,可以使用 Go 语言中的 encoding/json 包来解析 JSON 格式的请求数据。可以使用以下代码解析请求数据:
func handleRequest(w http.ResponseWriter, r *http.Request) {
var user User
err := json.NewDecoder(r.Body).Decode(&user)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// 处理请求数据
}
以上代码会将请求数据解析为 User 结构体,并存储在 user 变量中。如果解析失败,会返回一个错误响应。
综上所述,Go 语言前后端连通的主要步骤包括创建 HTTP 服务器、处理 HTTP 请求、解析请求数据和返回响应数据。使用结构体可以方便地表示请求数据,并使用 JSON 格式进行传输。
原文地址: https://www.cveoy.top/t/topic/oMt3 著作权归作者所有。请勿转载和采集!