Go LangでWebAPIを作成するために、GolangでMySQLに接続する Go LangでWebAPIを作成するために、Golangでサーバーを立ち上げる でDBと接続することはできたし、サーバーを立ち上げることに成功した。
User情報を取得するAPIを作成する 次は、特定のエンドポイントにアクセスした際に、DBからデータを取得する。
具体的にはhttp://localhost:8081/usrsにアクセスした際にusersテーブルのデータを取得できるようにしたい。
エンドポイントを作成する まずはhttp://localhost:8081/usrsのエンドポイントを作成する。
func sample(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Welcome to the sample!") fmt.Println("Endpoint Hit: sample") } func handleRequests() { http.HandleFunc("/sample", sample) log.Fatal(http.ListenAndServe(":8081", nil)) } handleRequestsをmain関数の中で実行すればhttp://localhost:8081/usrsにアクセスした際に
Welcome to the sample と表示されるようになった。
ちになみに、
fmt.Fprintf(w, "Welcome to the sample!") 上記のwが謎で調べてみたところ、
w を使用して Write メソッドを呼び出すことで、HTTPレスポンスの本文をクライアントに送信することができます。fmt.Fprintf(w, “Welcome to the sample!”) は、fmt.Fprintf 関数を使用してフォーマットされた文字列を w.Write を介してクライアントに送信しています。
とのことだった。
いまいち理解しかねるけれど、なんとなく必要なことは分かった。
DBのデータをフェッチする 次にhttp://localhost:8081/usrsにアクセスした際にDBの値を返すようにしてみる。
まずはDBに接続する関数を作成する。 これは前回も作成した。
func dbInit() *gorm.DB { dsn := "root:password@tcp(127....