remove transport draft, add grpc web and gateway support

This commit is contained in:
2021-09-18 01:39:15 +02:00
parent 4085420f6f
commit 1eea54f18a
37 changed files with 2884 additions and 290 deletions

29
service/gateway.go Normal file
View File

@ -0,0 +1,29 @@
package service
import (
"net/http"
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
)
var defaultGatewayOptions = []runtime.ServeMuxOption{
runtime.WithIncomingHeaderMatcher(func(s string) (string, bool) {
return s, true
}),
}
func (s *service) gateway(opts ...runtime.ServeMuxOption) error {
if !s.opts.Gateway() {
return nil
}
mux := runtime.NewServeMux(append(defaultGatewayOptions, opts...)...)
if err := s.opts.gateway(s.opts.ctx, mux, s.inproc); err != nil {
return err
}
if s.opts.gatewayPrefix != "" {
s.mux.Handle(s.opts.gatewayPrefix+"/", http.StripPrefix(s.opts.gatewayPrefix, mux))
} else {
s.mux.Handle("/", mux)
}
return nil
}