Cara Membuat REST API dengan GoLang (PATCH)
Apr 22, 2022
Add Comment
Lanjut dari artikel sebelumnya, Kali ini saya akan membeli tutorial tentang method PATCH pada REST API GoLang.
Method PATCH
1. Buka file main.go
2. Buat code seperti Dibawah Ini
package main
import (
"errors"
"net/http"
"github.com/gin-gonic/gin"
)
type todo struct {
ID string `json:"id"`
Item string `json:"title"`
Completed bool `json:"completed"`
}
var todos = []todo{
{
ID: "1",
Item: "Clean Room",
Completed: false,
},
{
ID: "2",
Item: "Read Book",
Completed: false,
},
{
ID: "3",
Item: "Record Video",
Completed: false,
},
}
func getTodos(context *gin.Context) {
context.IndentedJSON(http.StatusOK, todos)
}
func addTodo(context *gin.Context) {
var newTodo todo
if err := context.BindJSON(&newTodo); err != nil {
return
}
todos = append(todos, newTodo)
context.IndentedJSON(http.StatusCreated, newTodo)
}
func getTodo(context *gin.Context) {
id := context.Param("id")
todo, err := getTodoById(id)
if err != nil {
context.IndentedJSON(http.StatusNotFound, gin.H{"Message": "Todo not found"})
}
context.IndentedJSON(http.StatusOK, todo)
}
func toggleTodoStatus(context *gin.Context) {
id := context.Param("id")
todo, err := getTodoById(id)
if err != nil {
context.IndentedJSON(http.StatusNotFound, gin.H{"Message": "Todo not found"})
}
todo.Completed = !todo.Completed
context.IndentedJSON(http.StatusOK, todo)
}
func getTodoById(id string) (*todo, error) {
for i, t := range todos {
if t.ID == id {
return &todos[i], nil
}
}
return nil, errors.New("Todo not found")
}
func main() {
router := gin.Default()
router.GET("/todos", getTodos)
router.GET("/todos/:id", getTodo)
router.PATCH("/todos/:id", toggleTodoStatus)
router.POST("/todos", addTodo)
router.Run("localhost:9090")
}
3. Simpan main.go
4. Jalankan code Menggunakan perintah ini di terminal, go run main.go
8. Pastikan code berjalan
9. Lakukan test Menggunakan Postman
0 Response to "Cara Membuat REST API dengan GoLang (PATCH)"
Post a Comment