Go Fiber 및 PlanetScale로 REST API 구축 - 4부
12815 단어 apiplanetscalego
사용자 업데이트
다시 사용자 핸들러에
UpdateUser
라는 새 함수를 추가합니다.func UpdateUser(c *fiber.Ctx) error {
// first, check if the user is exist
user := models.User{}
if err := models.DB.First(&user, "id = ?", c.Params("id")).Error; err != nil {
return c.Status(http.StatusNotFound).JSON(&fiber.Map{
"message": "Record not found!",
})
}
// second, parse the request body
request := &updateUserRequest{}
if err := c.BodyParser(request); err != nil {
return c.Status(http.StatusBadRequest).JSON(&fiber.Map{
"message": err.Error(),
})
}
// third, update the user
updateUser := models.User{
Name: request.Name,
Email: request.Email,
Website: request.Website,
}
models.DB.Model(&user).Updates(&updateUser)
return c.Status(http.StatusOK).JSON(&fiber.Map{
"user": user,
})
}
업데이트 사용자를 main.go에 등록
app.Put("/users/:id", handlers.UpdateUser)
이제 응용 프로그램을 다시 실행하십시오. 이전에 생성한 사용자를 업데이트합니다.
$ curl --location --request PUT 'http://localhost:3000/users/1' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Machine name"
}'
응답
{
"user": {
"ID": 1,
"CreatedAt": "2021-09-08T08:07:25.042+07:00",
"UpdatedAt": "2021-09-08T08:15:52.249+07:00",
"DeletedAt": null,
"name": "Machine name",
"email": "[email protected]",
"website": "google.com"
}
}
사용자가 존재하지 않을 때
$ curl --location --request PUT 'http://localhost:3000/users/100' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Machine name"
}'
응답
{
"message": "Record not found!"
}
사용자 삭제
사용자 처리기 하단에 사용자 삭제 기능을 추가합니다.
func DeleteUser(c *fiber.Ctx) error {
// first, check if the user is exist
user := models.User{}
if err := models.DB.First(&user, "id = ?", c.Params("id")).Error; err != nil {
return c.Status(http.StatusNotFound).JSON(&fiber.Map{
"message": "Record not found!",
})
}
// second, delete the user
models.DB.Delete(&user)
return c.Status(http.StatusOK).JSON(&fiber.Map{
"message": "Success",
})
}
기능 등록
app.Delete("/users/:id", handlers.DeleteUser)
따라서 새 사용자를 다시 생성하십시오.
$ curl --location --request POST 'http://localhost:3000/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Badu",
"email": "[email protected]",
"website": "google.com"
}'
응답에서 ID를 확인하면 해당 사용자를 삭제합니다.
$ curl --location --request DELETE 'http://localhost:3000/users/2'
응답
{
"message": "Success"
}
요약
PlanetScale은 개발 수명 주기에 사용할 수 있는 개발자 플랜 가격을 제공하며 완전 무료입니다. 각 데이터베이스에 대해 최대 3개의 데이터베이스와 3개의 분기를 생성할 수 있습니다. 기본적으로 이것은 서버리스 데이터베이스를 전혀 사용하지 않는 개발자와 스키마를 만드는 방법에 대한 새로운 워크플로에 대한 새로운 지식이 될 것입니다.
Fiber는 Go에서 애플리케이션을 구축하기 위한 훌륭한 웹 프레임워크이며 빠르고 풍부한 기능을 갖추고 있으며 문서도 훌륭합니다.
이 게시물은 Fiber 및 PlanetScale 데이터베이스를 사용하는 방법에 대한 기본적인 이해를 제공하는 간단한 웹 API 애플리케이션일 뿐입니다. 다음에는 동일한 기술 스택으로 더 복잡한 웹 API를 구축할 것입니다.
여기에서 전체 소스 코드를 다운로드하십시오repository.
고맙습니다.
Reference
이 문제에 관하여(Go Fiber 및 PlanetScale로 REST API 구축 - 4부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maful/build-rest-api-with-go-fiber-and-planetscale-part-4-3m95텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)