0

sqlx用来创建一个goapi。

我想在名为day.

对应的go结构如下

type Day struct {
    ID      string         `db:"id" json:"id"`
    Dateday string         `db:"dateday" json:"dateday"`
    Nameday string         `db:"nameday" json:"nameday"`
    Holyday bool           `db:"holyday" json:"holyday"`
}

在 Day 创建的端点中,将接收除ID通过 post 请求之外的所有字段

我应该使用什么方法与我的数据库进行交互,以便:

a) 创建记录

b)不需要通过ID自己并指示postgres自动生成字段。

建表语句如下:

CREATE TABLE IF NOT EXISTS "day" (
  "id" SERIAL PRIMARY KEY,
  "dateday" date NOT NULL,
  "nameday" varchar(10) NOT NULL,
  "holyday" boolean NOT NULL
);

4

1 回答 1

0

我建议覆盖MarshalJSON下面提到的方法:

func (r Day) MarshalJSON() ([]byte, error) {
    root := make(map[string]interface{})

    root["dateday"] = r.Dateday
    root["nameday"] = r.Nameday
    root["holyday"] = r.Holyday
    return json.Marshal(root)
}

参考:https ://golang.org/pkg/encoding/json/#example__customMarshalJSON

于 2020-01-19T19:03:02.560 回答