go run main.go
package main
// GET requstのみに対応して、URLで切り分ける
import (
"fmt"
"log"
"net/http"
)
func main() {
// 1. ハンドラー(処理内容)の定義
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// GET命令のみを許可
if r.Method != http.MethodGet {
http.Error(w, "GETメソッドのみ受け付けます", http.StatusMethodNotAllowed)
return
}
// パスによって処理を切り分ける
switch r.URL.Path {
case "/hello":
fmt.Fprintln(w, "こんにちは!")
case "/status":
fmt.Fprintln(w, "サーバーは正常に稼働中です")
default:
fmt.Fprintf(w, "リクエストされたパス: %s\n", r.URL.Path)
}
// クエリパラメータの取得(例: ?name=user)
name := r.URL.Query().Get("name")
if name != "" {
fmt.Fprintf(w, "こんにちは、%sさん!\n", name)
}
})
// 2. 特定のIPアドレスとポートで運用するための設定
// 全てのインターフェースなら ":8080"、特定IPなら "192.168.x.x:8080" と記述
address := "127.0.0.1:8080"
fmt.Printf("Starting server at http://%s\n", address)
// サーバーの起動
if err := http.ListenAndServe(address, nil); err != nil {
log.Fatal(err)
}
}
0 件のコメント:
コメントを投稿