Support for multiple HTTP verbs in routes/HTTPTrigger (#2064)

* Support for multiple HTTP verbs in routes/HTTPTrigger

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>

* Update pkg/apis/core/v1/types.go

Co-authored-by: Harsh Thakur <harshthakur9030@gmail.com>

* Fix fallbackurl for ingress

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>

Co-authored-by: Harsh Thakur <harshthakur9030@gmail.com>
This commit is contained in:
Sanket Sudake
2021-06-14 14:48:27 +05:30
committed by GitHub
co-authored by Harsh Thakur
parent 4038f0384b
commit 673ca25cf2
18 changed files with 166 additions and 39 deletions
+16 -2
View File
@@ -173,11 +173,25 @@ func (ts *HTTPTriggerSet) getRouter(fnTimeoutMap map[types.UID]int) *mux.Router
} else {
ht = muxRouter.HandleFunc(trigger.Spec.RelativeURL, fh.handler)
}
ht.Methods(trigger.Spec.Method)
methods := trigger.Spec.Methods
if len(trigger.Spec.Method) > 0 {
present := false
for _, m := range trigger.Spec.Methods {
if m == trigger.Spec.Method {
present = true
break
}
}
if !present {
methods = append(methods, trigger.Spec.Method)
}
}
ht.Methods(methods...)
if trigger.Spec.Host != "" {
ht.Host(trigger.Spec.Host)
}
if trigger.Spec.Prefix == nil && trigger.Spec.RelativeURL == "/" && trigger.Spec.Method == "GET" {
if trigger.Spec.Prefix == nil && trigger.Spec.RelativeURL == "/" && len(methods) == 1 && methods[0] == http.MethodGet {
homeHandled = true
}
}