JSON リクエスト本文を解析するにはどうすればよいですか? ioutil.ReadAll() を使用してリクエスト本文を読み取ります。 json.Unmarshal() を使用して JSON 本文を解析します。ミドルウェアを使用して HTTP リクエストが認証されていることを確認するにはどうすればよいですか?トークンを検証するミドルウェア関数を作成します。ルータにルートを登録し、ミドルウェアを使用してリクエストを処理します。 HTTPリクエストコンテキスト経由でデータベース接続を取得するにはどうすればよいですか?データベース接続を取得するミドルウェア関数を作成します。接続をミドルウェア関数のコンテキストに保存します。ルータにルートを登録し、ミドルウェアを使用してリクエストを処理します。
GoLang フレームワーク開発における一般的な問題の分析と回答
GoLang フレームワークの開発プロセスでは、さまざまな問題に遭遇します。この記事では、最も一般的な質問をいくつか集めて、詳細な回答と実際の事例を提供します。
質問 1: JSON リクエスト本文を解析するにはどうすればよいですか?
// 解析 JSON 请求正文 func parseJSON(w http.ResponseWriter, r *http.Request) (map[string]interface{}, error) { body, err := ioutil.ReadAll(r.Body) if err != nil { return nil, err } defer r.Body.Close() var bodyMap map[string]interface{} if err := json.Unmarshal(body, &bodyMap); err != nil { return nil, err } return bodyMap, nil } // 实战案例 func handleJSON(w http.ResponseWriter, r *http.Request) { bodyMap, err := parseJSON(w, r) if err != nil { http.Error(w, "Invalid JSON", http.StatusBadRequest) return } // 处理 JSON 请求正文 }
質問 2: ミドルウェアを使用して HTTP リクエストが認証されていることを確認するにはどうすればよいですか?
// 验证 HTTP 请求是否经过身份验证的中间件 func AuthMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // 获取 Authorization 头 authToken := r.Header.Get("Authorization") // 验证令牌有效性 if !validateToken(authToken) { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } // 继续执行请求处理程序 next.ServeHTTP(w, r) }) } // 实战案例 func main() { // 创建一个 HTTP 路由器 router := http.NewServeMux() // 注册路由,使用 AuthMiddleware 验证请求 router.HandleFunc("/protected", AuthMiddleware(http.HandlerFunc(handleProtected))) // 启动服务器 http.ListenAndServe(":8080", router) }
質問 3: HTTP リクエスト コンテキストを通じてデータベース接続を取得するにはどうすればよいですか?
りー以上がGolang フレームワーク開発における一般的な問題の分析と回答の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。