我的postgresql数据库中有一个“设置”表,其中包含以下数据:
id | price | duration | start_mn | end_mn | step | days_ranges
----+-------+----------+----------+--------+------+--------------------------------------------------
1 | 50 | 40 | 540 | 1140 | 30 | [{"weekday":3,"ranges":{"from":599, "to":1079}}]
我想处理一个补丁请求,该请求将编辑单个字段,例如工期。
Atm我对此机构有一个http请求:{duration: 20}
我想知道如何正确打补丁。在我的GO后端上,设置了这些结构:
type Settings struct {
Price int
Duration int
StartMn int
EndMn int
Step int
DaysRanges DaysRanges
}
type DaysRanges []struct {
WeekDay int
Ranges struct {
From int
To int
}
}
现在可以处理它的功能:
func PatchSettings(w http.ResponseWriter, r *http.Request) {
var settings Settings
err := json.NewDecoder(r.Body).Decode(&settings)
if err != nil {
panic(err)
}
}
到目前为止,我得到了一个对象设置,其中许多字段为空(因为仅在主体中传递了持续时间)。然后,我可以检查每个字段,如果它不是空的,则使用该字段的值对该特定字段进行sql更新。
但是我感觉对PATCH请求及其处理方式的理解还很差。
我正在寻找更好的方法。