Working on content type negotiation API

This commit is contained in:
Manu Mtz-Almeida
2014-08-30 22:22:57 +02:00
parent 3b079bb6f7
commit ffea7e88a2
3 changed files with 104 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import (
"encoding/xml"
"reflect"
"runtime"
"strings"
)
type H map[string]interface{}
@ -45,6 +46,31 @@ func filterFlags(content string) string {
return content
}
func readData(key string, config map[string]interface{}) interface{} {
data, ok := config[key]
if ok {
return data
}
data, ok = config["*.data"]
if !ok {
panic("negotiation config is invalid")
}
return data
}
func parseAccept(accept string) []string {
parts := strings.Split(accept, ",")
for i, part := range parts {
index := strings.IndexByte(part, ';')
if index >= 0 {
part = part[0:index]
}
part = strings.TrimSpace(part)
parts[i] = part
}
return parts
}
func funcName(f interface{}) string {
return runtime.FuncForPC(reflect.ValueOf(f).Pointer()).Name()
}