12345678910111213141516171819202122232425262728293031323334 |
- package restPack
- import (
- restful "github.com/emicklei/go-restful"
- "gopkg.in/vmihailenco/msgpack.v2"
- )
- const MIME_MSGPACK = "application/x-msgpack" // Accept or Content-Type used in Consumes() and/or Produces()
- // NewEntityAccessorMPack returns a new EntityReaderWriter for accessing MessagePack content.
- // This package is not initialized with such an accessor using the MIME_MSGPACK contentType.
- func NewEntityAccessorMsgPack() restful.EntityReaderWriter {
- return entityMsgPackAccess{}
- }
- // entityOctetAccess is a EntityReaderWriter for Octet encoding
- type entityMsgPackAccess struct {
- }
- // Read unmarshalls the value from byte slice and using msgpack to unmarshal
- func (e entityMsgPackAccess) Read(req *restful.Request, v interface{}) error {
- return msgpack.NewDecoder(req.Request.Body).Decode(v)
- }
- // Write marshals the value to byte slice and set the Content-Type Header.
- func (e entityMsgPackAccess) Write(resp *restful.Response, status int, v interface{}) error {
- if v == nil {
- resp.WriteHeader(status)
- // do not write a nil representation
- return nil
- }
- resp.WriteHeader(status)
- return msgpack.NewEncoder(resp).Encode(v)
- }
|