Lewati ke konten

Menggunakan metode HTTP

Gin menyediakan metode yang memetakan langsung ke kata kerja HTTP, membuatnya mudah untuk membangun API RESTful. Setiap metode mendaftarkan rute yang hanya merespons tipe permintaan HTTP yang sesuai:

MetodePenggunaan REST Umum
GETMengambil sumber daya
POSTMembuat sumber daya baru
PUTMengganti sumber daya yang ada
PATCHMemperbarui sebagian sumber daya yang ada
DELETEMenghapus sumber daya
HEADSama seperti GET tetapi tanpa body
OPTIONSMenjelaskan opsi komunikasi
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func getting(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"method": "GET"})
}
func posting(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"method": "POST"})
}
func putting(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"method": "PUT"})
}
func deleting(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"method": "DELETE"})
}
func patching(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"method": "PATCH"})
}
func head(c *gin.Context) {
c.Status(http.StatusOK)
}
func options(c *gin.Context) {
c.Status(http.StatusOK)
}
func main() {
// Membuat router Gin dengan middleware bawaan:
// logger dan middleware recovery (bebas crash)
router := gin.Default()
router.GET("/someGet", getting)
router.POST("/somePost", posting)
router.PUT("/somePut", putting)
router.DELETE("/someDelete", deleting)
router.PATCH("/somePatch", patching)
router.HEAD("/someHead", head)
router.OPTIONS("/someOptions", options)
// Secara bawaan berjalan di :8080 kecuali
// variabel lingkungan PORT telah ditentukan.
router.Run()
// router.Run(":3000") menentukan port secara langsung di kode
}

Pengujian dengan curl

Setelah server berjalan, Anda dapat menguji setiap endpoint:

Terminal window
# Permintaan GET
curl -X GET http://localhost:8080/someGet
# Permintaan POST
curl -X POST http://localhost:8080/somePost
# Permintaan PUT
curl -X PUT http://localhost:8080/somePut
# Permintaan DELETE
curl -X DELETE http://localhost:8080/someDelete
# Permintaan PATCH
curl -X PATCH http://localhost:8080/somePatch
# Permintaan HEAD (mengembalikan header saja, tanpa body)
curl -I http://localhost:8080/someHead
# Permintaan OPTIONS
curl -X OPTIONS http://localhost:8080/someOptions

Lihat juga