この記事では、必要なパッケージのインポート、ルーターの作成、ハンドラーの定義、ルートの登録、サーバーの起動など、Golang を使用して RESTful API を構築する手順を示します。さらに、エラー メッセージや正しい HTTP ステータス コードを返すなど、エラー状態を処理するための手順も提供されています。
Golang での RESTful API の構築は、シンプルかつ効率的です。この記事では、API を作成して一般的なエラー シナリオを処理する方法を段階的に説明します。
import ( "encoding/json" "fmt" "log" "net/http" "github.com/gorilla/mux" )
r := mux.NewRouter()
func indexHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, World!") } func postHandler(w http.ResponseWriter, r *http.Request) { var data map[string]interface{} if err := json.NewDecoder(r.Body).Decode(&data); err != nil { http.Error(w, "Invalid JSON", http.StatusBadRequest) return } log.Printf("Received data: %v", data) json.NewEncoder(w).Encode(map[string]interface{}{"status": "success"}) }
r.HandleFunc("/", indexHandler).Methods("GET") r.HandleFunc("/post", postHandler).Methods("POST")
http.ListenAndServe(":8080", r)
type User struct { Name string `json:"name"` Email string `json:"email"` } func userHandler(w http.ResponseWriter, r *http.Request) { switch r.Method { case "GET": json.NewEncoder(w).Encode([]User{{Name: "John", Email: "john@example.com"}}) case "POST": var user User if err := json.NewDecoder(r.Body).Decode(&user); err != nil { http.Error(w, "Invalid JSON", http.StatusBadRequest) return } fmt.Fprint(w, "User created:", user) default: http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) } }
以上がGolang を使用して RESTful API を構築し、エラーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。