From 048e65d3e2827618536ccd4695eec210a5ce9e5a Mon Sep 17 00:00:00 2001 From: rick Date: Thu, 13 Nov 2025 17:57:37 +0800 Subject: [PATCH] chore: support more proxy http method --- cmd/server.go | 16 +++++++++++----- console/atest-ui/vite.config.ts | 8 ++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/cmd/server.go b/cmd/server.go index 8152327e..e70d8bd9 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -367,7 +367,8 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) { mux.HandlePath(http.MethodGet, "/favicon.ico", frontEndHandlerWithLocation(o.consolePath)) mux.HandlePath(http.MethodGet, "/swagger.json", frontEndHandlerWithLocation(o.consolePath)) mux.HandlePath(http.MethodGet, "/data/{data}", o.dataFromExtension(remoteServer.(server.UIExtensionServer))) - mux.HandlePath(http.MethodPost, "/extensionProxy/{extension}", func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) { + + proxyHandler := func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) { extServer := remoteServer.(server.UIExtensionServer) ctx := r.Context() @@ -388,8 +389,8 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) { return } - fmt.Println("redirect to", resp.Message) - req, err := http.NewRequestWithContext(ctx, http.MethodPost, resp.Message, r.Body) + fmt.Println("redirect to", resp.Message, "method", r.Method) + req, err := http.NewRequestWithContext(ctx, r.Method, resp.Message, r.Body) if err != nil { fmt.Println(err) return @@ -416,14 +417,19 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) { var count int for { count, err = rsp.Body.Read(data) - if count == -1 || count == 0 || err != nil { + if count == -1 || count == 0 || (err != nil && count <= 0) { fmt.Println("failed to read response body", err) + w.WriteHeader(http.StatusInternalServerError) + flusher.Flush() break } w.Write(data[:count]) flusher.Flush() } - }) + } + mux.HandlePath(http.MethodPost, "/extensionProxy/{extension}", proxyHandler) + mux.HandlePath(http.MethodGet, "/extensionProxy/{extension}", proxyHandler) + mux.HandlePath(http.MethodDelete, "/extensionProxy/{extension}", proxyHandler) mux.HandlePath(http.MethodGet, "/get", o.getAtestBinary) mux.HandlePath(http.MethodPost, "/runner/{suite}/{case}", service.WebRunnerHandler) mux.HandlePath(http.MethodGet, "/api/v1/sbom", service.SBomHandler) diff --git a/console/atest-ui/vite.config.ts b/console/atest-ui/vite.config.ts index fe41deae..b97152a3 100644 --- a/console/atest-ui/vite.config.ts +++ b/console/atest-ui/vite.config.ts @@ -70,10 +70,10 @@ export default defineConfig(({mode}) => { target: env.VITE_API_URL, changeOrigin: true, }, - '/extensionProxy': { - target: 'http://127.0.0.1:8080', - changeOrigin: true, - }, + '/extensionProxy': { + target: env.VITE_API_URL, + changeOrigin: true, + }, '/data': { target: env.VITE_API_URL, changeOrigin: true,