🦁

登録APIの実装(Go/echo/GORM+PostgreSQL16.4)

2024/09/22に公開

以下のAPIを実装していきます。

/user
body
{
  "name":name,
  "mail":mail,
  "age":age
}

まずはモデルを整備してテーブルを作成する。

user.go
package model
import (
	"exit/conf"
	"github.com/google/uuid"
)
type User struct {
	Uuid string
	Name string
	Mail *string
	Age  string
}
func InitUserTable() {
	// Create
	uuid, err := uuid.NewRandom()
	if err != nil {
		panic(err)
	}
	conf.MainDB.Create(&User{Uuid: uuid.String(), Name: "くさかり", Mail: nil, Age: "30"})
}

APIの登録部分。リクエストから受け取った情報を元に、uuidを作ってDBにinsertする。

api.go
package api
import (
	"exit/conf"
	"exit/model"
	"net/http"
	"github.com/google/uuid"
	"github.com/labstack/echo/v4"
)
func AddUser(c echo.Context) error {
	u := new(model.User)
	uuid, err := uuid.NewRandom()
	if err != nil {
		panic(err)
	}
	if err := c.Bind(u); err != nil {
		return err
	}
	u.Uuid = uuid.String()
	conf.MainDB.Create(&u)
	return c.JSON(http.StatusOK, u)
}

PostのAPIは作成できました。次はGetのAPIを作成して、Post→Getのテストを実装します。

Discussion