Documentation ¶
Overview ¶
Package gorilla/rpc/protorpc provides a codec for ProtoRPC over HTTP services.
To register the codec in a RPC server:
import ( "http" "github.com/gorilla/rpc" "github.com/gorilla/rpc/protorpc" ) func init() { s := rpc.NewServer() s.RegisterCodec(protorpc.NewCodec(), "application/json") // [...] http.Handle("/rpc", s) }
A codec is tied to a content type. In the example above, the server will use the ProtoRPC codec for requests with "application/json" as the value for the "Content-Type" header.
This package implement ProtoRPC, based on the JSON-RPC transport, it differs in that it uses HTTP as its envelope.
Example: POST /Service.Method Request:
{ "requestField1": "value1", "requestField2": "value2", }
Response:
{ "responseField1": "value1", "responseField2": "value2", }
Check the gorilla/rpc documentation for more details:
http://gorilla-web.appspot.com/pkg/rpc
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Codec ¶
type Codec struct { }
Codec creates a CodecRequest to process each request.
func (*Codec) NewRequest ¶
func (c *Codec) NewRequest(r *http.Request) rpc.CodecRequest
NewRequest returns a CodecRequest.
type CodecRequest ¶
type CodecRequest struct {
// contains filtered or unexported fields
}
CodecRequest decodes and encodes a single request.
func (*CodecRequest) Method ¶
func (c *CodecRequest) Method() (string, error)
Method returns the RPC method for the current request.
The method uses a dotted notation as in "Service.Method".
func (*CodecRequest) ReadRequest ¶
func (c *CodecRequest) ReadRequest(args interface{}) error
ReadRequest fills the request object for the RPC method.
func (*CodecRequest) WriteResponse ¶
func (c *CodecRequest) WriteResponse(w http.ResponseWriter, reply interface{}, methodErr error) error
WriteResponse encodes the response and writes it to the ResponseWriter.
The err parameter is the error resulted from calling the RPC method, or nil if there was no error.