{
  "$type": "site.standard.document",
  "canonicalUrl": "https://blog.nove-b.dev//posts/access-endpoints-fetch-data-golang-webapi",
  "path": "/posts/access-endpoints-fetch-data-golang-webapi",
  "publishedAt": "2023-12-04T00:00:00.000Z",
  "site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
  "tags": [
    "api",
    "db",
    "go",
    "エンドポイント"
  ],
  "textContent": "1. Go LangでWebAPIを作成するために、GolangでMySQLに接続する\n2. Go LangでWebAPIを作成するために、Golangでサーバーを立ち上げる\n\nでDBと接続することはできたし、サーバーを立ち上げることに成功した。\n\nUser情報を取得するAPIを作成する\n\n次は、特定のエンドポイントにアクセスした際に、DBからデータを取得する。\n\n具体的にはhttp://localhost:8081/usrsにアクセスした際にusersテーブルのデータを取得できるようにしたい。\n\nエンドポイントを作成する\n\nまずはhttp://localhost:8081/usrsのエンドポイントを作成する。\n\nhandleRequestsをmain関数の中で実行すればhttp://localhost:8081/usrsにアクセスした際に\n\nと表示されるようになった。\n\nちになみに、\n\n上記のwが謎で調べてみたところ、\n\n> w を使用して Write メソッドを呼び出すことで、HTTPレスポンスの本文をクライアントに送信することができます。fmt.Fprintf(w,\n> \"Welcome to the\n> sample!\") は、fmt.Fprintf 関数を使用してフォーマットされた文字列を w.Write を介してクライアントに送信しています。\n\nとのことだった。\n\nいまいち理解しかねるけれど、なんとなく必要なことは分かった。\n\nDBのデータをフェッチする\n\n次にhttp://localhost:8081/usrsにアクセスした際にDBの値を返すようにしてみる。\n\nまずはDBに接続する関数を作成する。 これは前回も作成した。\n\n次に、DBからFetchする関数を作成する。\n\n最後にエンドポイントにアクセスした際にfetchUsersを実行するように設定する。\n\nこれでhttp://localhost:8081/usersにアクセスすると、\n\nが取得できた。\n\n全体像はこんな感じ。\n\n全体のコード\n\n全体のコード(リファクタリング版)\n\nここまでをリファクタリングしてみる。\n\n.envを使用するために、\n\nを実行する必要がある。",
  "title": "Go LangでWebAPIを作成するために、GolangでエンドポイントにアクセスしDBからデータを取得する"
}