Open2
【Go言語】個人的によく使うechoの機能まとめ
![eisuke](https://res.cloudinary.com/zenn/image/fetch/s--Vsmj_QUK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/ea7606d7bb.jpeg)
インポートコマンド
go get -u github.com/labstack/echo/v4
エントリーポイント
func main() {
//初期化
e := echo.New()
e.GET("/items", getItems)
e.POST("/items", createItem)
e.PATCH("/items/:id", updateItem)
e.DELETE("/items/:id", deleteItem)
e.Start(":8080")
}
![eisuke](https://res.cloudinary.com/zenn/image/fetch/s--Vsmj_QUK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/ea7606d7bb.jpeg)
エントリーポイントから実行される関数
// GET
func getItems(c echo.Context) error {
// ここにデータ取得のロジックを書く
return c.String(http.StatusOK, "アイテム一覧")
}
// POST
// jsonをデコードする型を用意しておく
type Item struct {
Name string `json:"name"`
Price int `json:"price"`
}
func createItem(c echo.Context) error {
item := &Item{}
if err := c.Bind(item); err != nil {
return c.String(http.StatusBadRequest, "リクエストのフォーマットが不正です。")
}
// 通常はここでデータベースにitemを保存します。
return c.JSON(http.StatusCreated, item)
}
// PATCH
func updateItem(c echo.Context) error {
id := c.Param("id") // URLからIDを取得
// ここにデータ更新のロジックを書く
return c.String(http.StatusOK, "アイテム" + id + "を更新")
}
// DELETE
func deleteItem(c echo.Context) error {
id := c.Param("id") // URLからIDを取得
// ここにデータ削除のロジックを書く
return c.String(http.StatusOK, "アイテム" + id + "を削除")
}