github.com/hduhelp/go-zero@v1.4.3/gateway/internal/headerprocessor.go (about)

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