func TestMsgPack(t *testing.T) { // register msg pack entity restful.RegisterEntityAccessor(MIME_MSGPACK, NewEntityAccessorMsgPack()) type Tool struct { Name string Vendor string } // Write httpWriter := httptest.NewRecorder() mpack := &Tool{Name: "json", Vendor: "apple"} resp := restful.NewResponse(httpWriter) resp.SetRequestAccepts("application/x-msgpack,*/*;q=0.8") err := resp.WriteEntity(mpack) if err != nil { t.Errorf("err %v", err) } // Read bodyReader := bytes.NewReader(httpWriter.Body.Bytes()) httpRequest, _ := http.NewRequest("GET", "/test", bodyReader) httpRequest.Header.Set("Content-Type", MIME_MSGPACK) request := restful.NewRequest(httpRequest) readMsgPack := new(Tool) err = request.ReadEntity(&readMsgPack) if err != nil { t.Errorf("err %v", err) } if equal := reflect.DeepEqual(mpack, readMsgPack); !equal { t.Fatalf("should not be error") } }
func register(container *restful.Container) { restful.RegisterEntityAccessor(MIME_MSGPACK, NewEntityAccessorMsgPack()) ws := new(restful.WebService) ws. Path("/test"). Consumes(restful.MIME_JSON, MIME_MSGPACK). Produces(restful.MIME_JSON, MIME_MSGPACK) // route user api ws.Route(ws.POST("/msgpack"). To(do). Reads(user{}). Writes(userResponse{})) container.Add(ws) }