我正在使用 Gin 和 GORM 在 Golang 中構(gòu)建 Book API。我已成功實(shí)施 API 的創(chuàng)建、獲取和刪除部分,但更新導(dǎo)致 500 內(nèi)部服務(wù)器錯(cuò)誤。我正在嘗試更新功能,它只更新正文中提供的特定標(biāo)簽(下面給出的示例)。非常感謝任何幫助或指導(dǎo)。去模型func UpdateBook(c *gin.Context) { // Get model if exist var book models.Book if err := models.DB.Where("id = ?", c.Param("id")).First(&book).Error; err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": "Record not found!"}) return } // Validate input var input UpdateBookInput if err := c.ShouldBindJSON(&input); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } models.DB.Model(&book).Updates(input) c.JSON(http.StatusOK, gin.H{"data": book})}UpdateBookInput 結(jié)構(gòu)type UpdateBookInput struct { Title string `json:"title"` Author string `json:"author"`}主程序func main() { router := gin.Default() models.ConnectDatabase() router.GET("/books", controllers.FetchBooks) router.GET("/books/:id", controllers.FindBookByID) router.GET("/books/title/:title", controllers.FindBookByTitle) router.GET("/books/author/:author", controllers.FindBookByAuthor) router.POST("/books", controllers.CreateBook) router.PATCH("/books/:id", controllers.UpdateBook) router.DELETE("/books/:id", controllers.RemoveBook) router.Run()}請(qǐng)求 URL 和正文 URLPATCH http://127.0.0.1:8080/books/2身體{ "title": "Breaking Dawn",}方案/型號(hào)package modelstype Book struct { ID uint `json:"id" gorm:"primary_key"` Title string `json:"title"` Author string `json:"author"`}
GORM GIN 更新查詢導(dǎo)致 500 內(nèi)部服務(wù)器錯(cuò)誤
寶慕林4294392
2022-12-13 10:44:00