رفتن به محتوا

رندرینگ

Gin از رندرینگ پاسخ‌ها در چندین فرمت از جمله JSON، XML، YAML، ProtoBuf، HTML و موارد دیگر پشتیبانی می‌کند. هر متد رندرینگ از همان الگو پیروی می‌کند: فراخوانی یک متد روی *gin.Context با یک کد وضعیت HTTP و داده‌ها برای سریال‌سازی. Gin هدرهای content-type، سریال‌سازی و نوشتن پاسخ را به طور خودکار مدیریت می‌کند.

// All rendering methods share this pattern:
c.JSON(http.StatusOK, data) // application/json
c.XML(http.StatusOK, data) // application/xml
c.YAML(http.StatusOK, data) // application/x-yaml
c.TOML(http.StatusOK, data) // application/toml
c.ProtoBuf(http.StatusOK, data) // application/x-protobuf

می‌توانید از هدر Accept یا یک پارامتر پرس‌وجو برای ارائه همان داده‌ها در فرمت‌های مختلف از یک handler استفاده کنید:

package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/user", func(c *gin.Context) {
user := gin.H{"name": "Lena", "role": "admin"}
switch c.Query("format") {
case "xml":
c.XML(http.StatusOK, user)
case "yaml":
c.YAML(http.StatusOK, user)
default:
c.JSON(http.StatusOK, user)
}
})
router.Run(":8080")
}

در این بخش