package main import ( "net/http" "strings" ) func setupRoutes() { http.HandleFunc("/register", RegisterHandler) http.HandleFunc("/login", LoginHandler) http.HandleFunc("/frpcAct/instanceMgr/create", CreateInstanceHandler) http.HandleFunc("/frpcAct/instanceMgr/list", ListInstancesHandler) http.HandleFunc("/frpcAct/instanceMgr/", func(w http.ResponseWriter, r *http.Request) { path := r.URL.Path if len(path) < len("/frpcAct/instanceMgr/") { SendErrorResponse(w, http.StatusNotFound, "invalid path") return } remainingPath := path[len("/frpcAct/instanceMgr/"):] if r.Method == http.MethodPost { if remainingPath == "create" { CreateInstanceHandler(w, r) return } if remainingPath == "list" { ListInstancesHandler(w, r) return } if strings.HasSuffix(remainingPath, "/delete") { instanceName := strings.TrimSuffix(remainingPath, "/delete") instanceName = strings.Trim(instanceName, "/") DeleteInstanceHandler(w, r, instanceName) return } if strings.Contains(remainingPath, "/modify/") { parts := strings.SplitN(remainingPath, "/modify/", 2) if len(parts) == 2 { instanceName := strings.Trim(parts[0], "/") ModifyInstanceHandler(w, r, instanceName) return } } instanceName := strings.Trim(remainingPath, "/") if instanceName != "" { ListInstancesHandler(w, r) return } } SendErrorResponse(w, http.StatusNotFound, "endpoint not found") }) }