diff --git a/go-api/main.go b/go-api/main.go index 032aa8a..f309b33 100644 --- a/go-api/main.go +++ b/go-api/main.go @@ -4,14 +4,27 @@ import ( "encoding/json" "fmt" "net/http" + "strconv" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Println("Running handler...") - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusOK) + // If the `force-fail` header is set, get its value and use it as the status + // code. + if failCode := r.Header.Get("force-fail"); failCode != "" { + fmt.Println("`force-fail` header set...") + if code, err := strconv.Atoi(failCode); err == nil { + fmt.Printf("Setting the response code to %d...", code) + + w.WriteHeader(code) + } + } else { + w.WriteHeader(http.StatusOK) + } + + w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(map[string]any{}) }