亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Gin 中使用自定義內容類型呈現 JSON

在 Gin 中使用自定義內容類型呈現 JSON

Go
一只甜甜圈 2023-01-03 16:18:21
我想知道是否可以在 Gin 的上下文中添加一個“方法”來添加標頭Content-Type: application/hal+json,而不是在所有 API 調用中都這樣做SetHeader。是這樣的:ctx.HALJSON(http.StatusOK, hal)
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

您可以使用c.Render自定義渲染器,實現render.Renderer.

如果實際呈現與 JSON(HAL 應該是)相同,您可以嵌入render.JSON到您的結構中,以便該方法Render(http.ResponseWriter) error免費提供,然后僅實現自定義內容類型:


type HALJSON struct {

    render.JSON

}


func (HALJSON) WriteContentType(w http.ResponseWriter) {

    header := w.Header()

    if val := header["Content-Type"]; len(val) == 0 {

        header["Content-Type"] = []string{"application/hal+json"}

    }

}

然后這樣使用它:


func MyHandler(c *gin.Context) {

    // handler code...

    c.Render(http.StatusOK, HALJSON{})

}


查看完整回答
反對 回復 2023-01-03
  • 1 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號