not use protobuf on context but use it on render (#1496)
This commit is contained in:
parent
efdd3c8b81
commit
6073a79ee0
11
context.go
11
context.go
@ -20,7 +20,6 @@ import (
|
||||
"github.com/gin-contrib/sse"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"github.com/gin-gonic/gin/render"
|
||||
"github.com/golang/protobuf/proto"
|
||||
)
|
||||
|
||||
// Content-Type MIME of the most common data formats.
|
||||
@ -784,6 +783,11 @@ func (c *Context) YAML(code int, obj interface{}) {
|
||||
c.Render(code, render.YAML{Data: obj})
|
||||
}
|
||||
|
||||
// ProtoBuf serializes the given struct as ProtoBuf into the response body.
|
||||
func (c *Context) ProtoBuf(code int, obj interface{}) {
|
||||
c.Render(code, render.ProtoBuf{Data: obj})
|
||||
}
|
||||
|
||||
// String writes the given string into the response body.
|
||||
func (c *Context) String(code int, format string, values ...interface{}) {
|
||||
c.Render(code, render.String{Format: format, Data: values})
|
||||
@ -846,11 +850,6 @@ func (c *Context) Stream(step func(w io.Writer) bool) {
|
||||
}
|
||||
}
|
||||
|
||||
// ProtoBuf serializes the given struct as ProtoBuf into the response body.
|
||||
func (c *Context) ProtoBuf(code int, obj proto.Message) {
|
||||
c.Render(code, render.ProtoBuf{Data: obj})
|
||||
}
|
||||
|
||||
/************************************/
|
||||
/******** CONTENT NEGOTIATION *******/
|
||||
/************************************/
|
||||
|
0
render/json.go
Executable file → Normal file
0
render/json.go
Executable file → Normal file
@ -11,7 +11,7 @@ import (
|
||||
)
|
||||
|
||||
type ProtoBuf struct {
|
||||
Data proto.Message
|
||||
Data interface{}
|
||||
}
|
||||
|
||||
var protobufContentType = []string{"application/x-protobuf"}
|
||||
@ -19,7 +19,7 @@ var protobufContentType = []string{"application/x-protobuf"}
|
||||
func (r ProtoBuf) Render(w http.ResponseWriter) error {
|
||||
r.WriteContentType(w)
|
||||
|
||||
bytes, err := proto.Marshal(r.Data)
|
||||
bytes, err := proto.Marshal(r.Data.(proto.Message))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
0
render/render.go
Executable file → Normal file
0
render/render.go
Executable file → Normal file
3
render/render_test.go
Executable file → Normal file
3
render/render_test.go
Executable file → Normal file
@ -15,10 +15,11 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
testdata "github.com/gin-gonic/gin/testdata/protoexample"
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/ugorji/go/codec"
|
||||
|
||||
testdata "github.com/gin-gonic/gin/testdata/protoexample"
|
||||
)
|
||||
|
||||
// TODO unit tests
|
||||
|
Loading…
Reference in New Issue
Block a user