1
0

headerprocessor.go 571 B

123456789101112131415161718192021222324252627282930
  1. package internal
  2. import (
  3. "fmt"
  4. "net/http"
  5. "strings"
  6. )
  7. const (
  8. metadataHeaderPrefix = "Grpc-Metadata-"
  9. metadataPrefix = "gateway-"
  10. )
  11. // ProcessHeaders builds the headers for the gateway from HTTP headers.
  12. func ProcessHeaders(header http.Header) []string {
  13. var headers []string
  14. for k, v := range header {
  15. if !strings.HasPrefix(k, metadataHeaderPrefix) {
  16. continue
  17. }
  18. key := fmt.Sprintf("%s%s", metadataPrefix, strings.TrimPrefix(k, metadataHeaderPrefix))
  19. for _, vv := range v {
  20. headers = append(headers, key+":"+vv)
  21. }
  22. }
  23. return headers
  24. }