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

演習

第四回の演習で使用したAPIサーバーを修正してもらいます
この以下のコードをコピペして使用してもらっても大丈夫です

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)
}

上記のコードではメッセージの保存にグローバル変数を使用していましたが、今回はDBを使用するように修正してください

以下のようなテーブルを作成し、サーバーが正しく動くようにしてください

messages テーブル (下線部の下の項目は制約です)

idmessage
PRIMARY KEYNOT NULL
AUTOINCREMENT

確認用 curl

GET

curl http://localhost:8080/message

POST

curl http://localhost:8080/message -X POST -d 'ここに保存するメッセージ'