Go LangでWebAPIを作成するために、GolangでエンドポイントにアクセスしDBからデータを取得する
- Go LangでWebAPIを作成するために、GolangでMySQLに接続する
- Go LangでWebAPIを作成するために、Golangでサーバーを立ち上げる
でDBと接続することはできたし、サーバーを立ち上げることに成功した。
User情報を取得するAPIを作成する
次は、特定のエンドポイントにアクセスした際に、DBからデータを取得する。
具体的にはhttp://localhost:8081/usrsにアクセスした際にusersテーブルのデータを取得できるようにしたい。
エンドポイントを作成する
まずはhttp://localhost:8081/usrsのエンドポイントを作成する。
handleRequestsをmain関数の中で実行すればhttp://localhost:8081/usrsにアクセスした際に
と表示されるようになった。
ちになみに、
上記のwが謎で調べてみたところ、
w を使用して Write メソッドを呼び出すことで、HTTPレスポンスの本文をクライアントに送信することができます。fmt.Fprintf(w, "Welcome to the sample!") は、fmt.Fprintf 関数を使用してフォーマットされた文字列を w.Write を介してクライアントに送信しています。
とのことだった。
いまいち理解しかねるけれど、なんとなく必要なことは分かった。
DBのデータをフェッチする
次にhttp://localhost:8081/usrsにアクセスした際にDBの値を返すようにしてみる。
まずはDBに接続する関数を作成する。 これは前回も作成した。
次に、DBからFetchする関数を作成する。
最後にエンドポイントにアクセスした際にfetchUsersを実行するように設定する。
これでhttp://localhost:8081/usersにアクセスすると、
が取得できた。
全体像はこんな感じ。
全体のコード
全体のコード(リファクタリング版)
ここまでをリファクタリングしてみる。
.envを使用するために、
を実行する必要がある。
Discussion in the ATmosphere