From ac64ab54d40c9212d892e094ff10e442f0068abf Mon Sep 17 00:00:00 2001 From: Gary Murphy Date: Sun, 2 Apr 2023 15:16:36 +0100 Subject: [PATCH] added getStats endpoint to api gateway --- src/backend/apiGateway.go | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/backend/apiGateway.go b/src/backend/apiGateway.go index 94089a6..66d3c9d 100644 --- a/src/backend/apiGateway.go +++ b/src/backend/apiGateway.go @@ -32,7 +32,31 @@ func getSchema(w http.ResponseWriter, r *http.Request){ for _, container := range Containers { if container.Id == key { requestURL := fmt.Sprintf("http://%s:%s/schema", container.Name, container.port) - fmt.Fprintf(w, requestURL) + resp, err := http.Get(requestURL) + if err != nil { + log.Fatal("Request to container failed: %v", err) + } + + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Fatal("Failed to print Body: %v", err) + } + + fmt.Fprintf(w,string(body)) + } + } + +} + +func getStats(w http.ResponseWriter, r *http.Request){ + vars := mux.Vars(r) + key := vars["container"] + + for _, container := range Containers { + if container.Id == key { + requestURL := fmt.Sprintf("http://%s:%s/stats", container.Name, container.port) resp, err := http.Get(requestURL) if err != nil { log.Fatal("Request to container failed: %v", err) @@ -55,6 +79,7 @@ func handleRequests() { myRouter := mux.NewRouter().StrictSlash(true) myRouter.HandleFunc("/", homePage) myRouter.HandleFunc("/{container}/schema", getSchema) + myRouter.HandleFunc("/{container}/stats", getStats) log.Fatal(http.ListenAndServe(":10000", myRouter))