From 3941fb57a2ccaa18149fe97c8007d6e470efdbc5 Mon Sep 17 00:00:00 2001 From: Josh Brandoff Date: Fri, 12 Jun 2015 22:14:12 -0400 Subject: [PATCH] Added support for JSON-API content-type. --- render/json.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/render/json.go b/render/json.go index f28cd1f8..82a2c5d7 100644 --- a/render/json.go +++ b/render/json.go @@ -13,18 +13,29 @@ type ( JSON struct { Data interface{} } + + JSONAPI struct { + Data interface{} + } IndentedJSON struct { Data interface{} } ) -var jsonContentType = []string{"application/json; charset=utf-8"} +var ( + jsonContentType = []string{"application/json; charset=utf-8"} + jsonAPIContentType = []string{"application/vnd.api+json"} +) func (r JSON) Render(w http.ResponseWriter) error { return WriteJSON(w, r.Data) } +func (r JSONAPI) Render(w http.ResponseWriter) error { + return WriteJSONAPI(w, r.Data) +} + func (r IndentedJSON) Render(w http.ResponseWriter) error { w.Header()["Content-Type"] = jsonContentType jsonBytes, err := json.MarshalIndent(r.Data, "", " ") @@ -39,3 +50,8 @@ func WriteJSON(w http.ResponseWriter, obj interface{}) error { w.Header()["Content-Type"] = jsonContentType return json.NewEncoder(w).Encode(obj) } + +func WriteJSONAPI(w http.ResponseWrite, obj interface{}) error { + w.Header()["Content-Type"] = jsonAPIContentType + return json.NewEncode(w).Encode(obj) +}