🌟

Goのプロジェクトを作成し、HTTPサーバーを構築する

2023/11/11に公開

記事の内容

Goのプロジェクトを作成し、HTTPサーバーを構築する方法を解説します。

記事を読むと得られるもの

  • Goのプロジェクトの初期化(作成)の方法
  • GoでHttpリクエストを受け付ける方法

対象読者

  • Go初心者
  • Goに興味がある人

記事の長さ

2分で読めます

Goプロジェクトを作成する

まず最初に、Goを動作させるためのプロジェクトを作成します。

github repoの作成

$ gh repo create zenn-go-webserver-basic --public
✓ Created repository rara-tan/zenn-go-webserver-basic on GitHub

このGithubリポジトリにアプリケーションを作成していきます。
※cloneしておいてください。

Goプロジェクトの初期化

以下のコマンドを実行し、Goのプロジェクトの初期化を行います。

$ go mod init github.com/rara-tan/zenn-go-webserver-basic
go: creating new go.mod: module github.com/rara-tan/zenn-go-webserver-basic

上記コマンドを実行すると、カレントディレクトリに、go.modファイルが作成されます。

$ tree
.
└── go.mod

$ cat go.mod
module github.com/rara-tan/zenn-go-webserver-basic

go 1.21.3

Webサーバーを構築する

GoでWebサーバーを構築するのはとても簡単で、標準パッケージのnet/httpを利用します。

net/httpはとても優秀なパッケージで、デフォルトで並列リクエストを処理することができます。
そのため、rubyなどの他のプログラミング言語の標準パッケージのHTTPサーバーとは異なり、並列リクエストを処理するためのミドルウェアを自前で作る必要がありません。

main.go

// httpserver.go

package main

import (
  "fmt"
  "net/http"
  "os"
)

func main() {
  err := http.ListenAndServe(
    ":8080",
    http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
      fmt.Fprintf(w, "Hello, World!")
    }),
  )
  if err != nil {
    fmt.Println(err)
    os.Exit(1)
  }
}

上記ファイルを作成したら、以下のコマンドでWebサーバーを起動します。

$ go run main.go

この状態で、localhost:8080にアクセスすると、Hello World!という文字列が表示されます。

まとめ

上記で、GoでWebサーバーを立ち上げることに成功しました。

note

勉強法やキャリア構築法など、エンジニアに役立つ記事をnoteで配信しています。

https://note.com/ring_belle/membership

Discussion