我想知道是否可以在 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{})
}
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消