Skip to content

Commit

Permalink
server: emit default values in JSON
Browse files Browse the repository at this point in the history
Fixes lightninglabs#208 by always rendering the default values in a JSON response,
even if they are "falsey" in the RPC message.
  • Loading branch information
guggero committed Jan 26, 2021
1 parent 33fcaed commit 59b5907
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion server.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,11 +195,23 @@ func (s *Server) Start() error {
s.cfg.RPCListen)
}

// The default JSON marshaler of the REST proxy only sets
// OrigName to true, which instructs it to use the same field
// names as specified in the proto file and not switch to camel
// case. What we also want is that the marshaler prints all
// values, even if they are falsey.
customMarshalerOption := proxy.WithMarshalerOption(
proxy.MIMEWildcard, &proxy.JSONPb{
OrigName: true,
EmitDefaults: true,
},
)

// We'll also create and start an accompanying proxy to serve
// clients through REST.
var ctx context.Context
ctx, s.restCancel = context.WithCancel(context.Background())
mux := proxy.NewServeMux()
mux := proxy.NewServeMux(customMarshalerOption)
proxyOpts := []grpc.DialOption{
grpc.WithTransportCredentials(*restClientCreds),
}
Expand Down

0 comments on commit 59b5907

Please sign in to comment.