not use protobuf on context but use it on render (#1496)
This commit is contained in:
		
							
								
								
									
										11
									
								
								context.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								context.go
									
									
									
									
									
								
							@ -20,7 +20,6 @@ import (
 | 
				
			|||||||
	"github.com/gin-contrib/sse"
 | 
						"github.com/gin-contrib/sse"
 | 
				
			||||||
	"github.com/gin-gonic/gin/binding"
 | 
						"github.com/gin-gonic/gin/binding"
 | 
				
			||||||
	"github.com/gin-gonic/gin/render"
 | 
						"github.com/gin-gonic/gin/render"
 | 
				
			||||||
	"github.com/golang/protobuf/proto"
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Content-Type MIME of the most common data formats.
 | 
					// 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})
 | 
						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.
 | 
					// String writes the given string into the response body.
 | 
				
			||||||
func (c *Context) String(code int, format string, values ...interface{}) {
 | 
					func (c *Context) String(code int, format string, values ...interface{}) {
 | 
				
			||||||
	c.Render(code, render.String{Format: format, Data: values})
 | 
						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 *******/
 | 
					/******** 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 {
 | 
					type ProtoBuf struct {
 | 
				
			||||||
	Data proto.Message
 | 
						Data interface{}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var protobufContentType = []string{"application/x-protobuf"}
 | 
					var protobufContentType = []string{"application/x-protobuf"}
 | 
				
			||||||
@ -19,7 +19,7 @@ var protobufContentType = []string{"application/x-protobuf"}
 | 
				
			|||||||
func (r ProtoBuf) Render(w http.ResponseWriter) error {
 | 
					func (r ProtoBuf) Render(w http.ResponseWriter) error {
 | 
				
			||||||
	r.WriteContentType(w)
 | 
						r.WriteContentType(w)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bytes, err := proto.Marshal(r.Data)
 | 
						bytes, err := proto.Marshal(r.Data.(proto.Message))
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							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"
 | 
						"strings"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	testdata "github.com/gin-gonic/gin/testdata/protoexample"
 | 
					 | 
				
			||||||
	"github.com/golang/protobuf/proto"
 | 
						"github.com/golang/protobuf/proto"
 | 
				
			||||||
	"github.com/stretchr/testify/assert"
 | 
						"github.com/stretchr/testify/assert"
 | 
				
			||||||
	"github.com/ugorji/go/codec"
 | 
						"github.com/ugorji/go/codec"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						testdata "github.com/gin-gonic/gin/testdata/protoexample"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO unit tests
 | 
					// TODO unit tests
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user