メインコンテンツまでスキップ

前回のおさらい

Goで以下のようなサーバーを書いてもらいました

  • POSTリクエストでメッセージを保存する
  • GETリクエストで保存してあるメッセージをすべて返す
package main

import (
"fmt"
"io"
"net/http"
"strings"
)

var messages []string

func handler(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "GET":
// 保存してあるメッセージをすべて返す
j := strings.Join(messages, "\n")
fmt.Fprint(w, j)
case "POST":
// メッセージを保存する
msg, _ := io.ReadAll(r.Body)
messages = append(messages, string(msg))
default:
fmt.Fprintf(w, "Sorry, only GET and POST methods are supported.")
}
}

func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}