From d0b2a3b9953ae88e87c8159a36f67b598351542e Mon Sep 17 00:00:00 2001 From: zuoningz Date: Thu, 27 Jul 2023 02:42:23 -0700 Subject: [PATCH] Fix: incorrect API response mark (#864) Co-authored-by: Z Zhang --- pkg/server/interfaces/api/application.go | 18 ++++++++-------- pkg/server/interfaces/api/cloudshell.go | 5 +---- pkg/server/interfaces/api/cluster.go | 2 +- pkg/server/interfaces/api/definition.go | 8 ++++---- pkg/server/interfaces/api/plugin.go | 26 ++++++++++++++++-------- pkg/server/interfaces/api/target.go | 9 ++++---- 6 files changed, 37 insertions(+), 31 deletions(-) diff --git a/pkg/server/interfaces/api/application.go b/pkg/server/interfaces/api/application.go index b171a910d..441a8d0c6 100644 --- a/pkg/server/interfaces/api/application.go +++ b/pkg/server/interfaces/api/application.go @@ -466,7 +466,7 @@ func (c *application) GetWebServiceRoute() *restful.WebService { Param(ws.QueryParameter("page", "query the page number").DataType("integer")). Param(ws.QueryParameter("pageSize", "query the page size number").DataType("integer")). Returns(200, "OK", apis.ListWorkflowRecordsResponse{}). - Writes(apis.ListWorkflowRecordsResponse{}).Do(returns200, returns500)) + Writes(apis.ListWorkflowRecordsResponse{}).Do(returns500)) ws.Route(ws.GET("/{appName}/workflows").To(c.WorkflowAPI.listApplicationWorkflows). Doc("list application workflow"). @@ -475,7 +475,7 @@ func (c *application) GetWebServiceRoute() *restful.WebService { Param(ws.PathParameter("appName", "identifier of the application.").DataType("string").Required(true)). Metadata(restfulspec.KeyOpenAPITags, tags). Returns(200, "OK", apis.ListWorkflowResponse{}). - Writes(apis.ListWorkflowResponse{}).Do(returns200, returns500)) + Writes(apis.ListWorkflowResponse{}).Do(returns500)) ws.Route(ws.POST("/{appName}/workflows").To(c.WorkflowAPI.createOrUpdateApplicationWorkflow). Doc("create application workflow"). @@ -486,7 +486,7 @@ func (c *application) GetWebServiceRoute() *restful.WebService { Param(ws.PathParameter("appName", "identifier of the application.").DataType("string").Required(true)). Returns(200, "create success", apis.DetailWorkflowResponse{}). Returns(400, "create failure", bcode.Bcode{}). - Writes(apis.DetailWorkflowResponse{}).Do(returns200, returns500)) + Writes(apis.DetailWorkflowResponse{}).Do(returns500)) ws.Route(ws.GET("/{appName}/workflows/{workflowName}").To(c.WorkflowAPI.detailWorkflow). Doc("detail application workflow"). @@ -498,7 +498,7 @@ func (c *application) GetWebServiceRoute() *restful.WebService { Metadata(restfulspec.KeyOpenAPITags, tags). Filter(c.WorkflowAPI.workflowCheckFilter). Returns(200, "create success", apis.DetailWorkflowResponse{}). - Writes(apis.DetailWorkflowResponse{}).Do(returns200, returns500)) + Writes(apis.DetailWorkflowResponse{}).Do(returns500)) ws.Route(ws.PUT("/{appName}/workflows/{workflowName}").To(c.WorkflowAPI.updateWorkflow). Doc("update application workflow config"). @@ -510,7 +510,7 @@ func (c *application) GetWebServiceRoute() *restful.WebService { Param(ws.PathParameter("workflowName", "identifier of the workflow").DataType("string")). Reads(apis.UpdateWorkflowRequest{}). Returns(200, "OK", apis.DetailWorkflowResponse{}). - Writes(apis.DetailWorkflowResponse{}).Do(returns200, returns500)) + Writes(apis.DetailWorkflowResponse{}).Do(returns500)) ws.Route(ws.DELETE("/{appName}/workflows/{workflowName}").To(c.WorkflowAPI.deleteWorkflow). Doc("deletet workflow"). @@ -520,7 +520,6 @@ func (c *application) GetWebServiceRoute() *restful.WebService { Filter(c.WorkflowAPI.workflowCheckFilter). Param(ws.PathParameter("appName", "identifier of the application.").DataType("string").Required(true)). Param(ws.PathParameter("workflowName", "identifier of the workflow").DataType("string")). - Returns(200, "OK", apis.EmptyResponse{}). Writes(apis.EmptyResponse{}).Do(returns200, returns500)) ws.Route(ws.GET("/{appName}/workflows/{workflowName}/records").To(c.WorkflowAPI.listWorkflowRecords). @@ -534,7 +533,7 @@ func (c *application) GetWebServiceRoute() *restful.WebService { Param(ws.QueryParameter("page", "query the page number").DataType("integer")). Param(ws.QueryParameter("pageSize", "query the page size number").DataType("integer")). Returns(200, "OK", apis.ListWorkflowRecordsResponse{}). - Writes(apis.ListWorkflowRecordsResponse{}).Do(returns200, returns500)) + Writes(apis.ListWorkflowRecordsResponse{}).Do(returns500)) ws.Route(ws.GET("/{appName}/workflows/{workflowName}/records/{record}").To(c.WorkflowAPI.detailWorkflowRecord). Doc("query application workflow execution record detail"). @@ -546,7 +545,7 @@ func (c *application) GetWebServiceRoute() *restful.WebService { Filter(c.appCheckFilter). Filter(c.WorkflowAPI.workflowCheckFilter). Returns(200, "OK", apis.DetailWorkflowRecordResponse{}). - Writes(apis.DetailWorkflowRecordResponse{}).Do(returns200, returns500)) + Writes(apis.DetailWorkflowRecordResponse{}).Do(returns500)) ws.Route(ws.GET("/{appName}/workflows/{workflowName}/records/{record}/resume").To(c.WorkflowAPI.resumeWorkflowRecord). Doc("resume suspend workflow record"). @@ -684,16 +683,19 @@ func (c *application) createApplication(req *restful.Request, res *restful.Respo // Verify the validity of parameters var createReq apis.CreateApplicationRequest if err := req.ReadEntity(&createReq); err != nil { + klog.Info("param err ", err) bcode.ReturnError(req, res, err) return } if err := validate.Struct(&createReq); err != nil { + klog.Info("validate struct err ", err) bcode.ReturnError(req, res, err) return } // Call the domain layer code appBase, err := c.ApplicationService.CreateApplication(req.Request.Context(), createReq) if err != nil { + klog.Info("Failure: ", err.Error()) klog.Errorf("create application failure %s", err.Error()) bcode.ReturnError(req, res, err) return diff --git a/pkg/server/interfaces/api/cloudshell.go b/pkg/server/interfaces/api/cloudshell.go index eac07d86d..30b9b69e7 100644 --- a/pkg/server/interfaces/api/cloudshell.go +++ b/pkg/server/interfaces/api/cloudshell.go @@ -59,13 +59,12 @@ func (c *CloudShell) GetWebServiceRoute() *restful.WebService { Filter(c.RbacService.CheckPerm("cloudshell", "create")). Returns(200, "OK", apis.CloudShellPrepareResponse{}). Returns(400, "Bad Request", bcode.Bcode{}). - Writes(apis.CloudShellPrepareResponse{}).Do(returns200, returns500)) + Writes(apis.CloudShellPrepareResponse{}).Do(returns500)) ws.Route(ws.DELETE("/").To(c.destroyCloudShell). Doc("destroy the user's cloud shell environment"). Metadata(restfulspec.KeyOpenAPITags, tags). Filter(c.RbacService.CheckPerm("cloudshell", "delete")). - Returns(200, "OK", apis.EmptyResponse{}). Returns(400, "Bad Request", bcode.Bcode{}). Writes(apis.EmptyResponse{}).Do(returns200, returns500)) @@ -128,7 +127,6 @@ func (c *CloudShellView) GetWebServiceRoute() *restful.WebService { Doc("prepare the user's cloud shell environment"). Metadata(restfulspec.KeyOpenAPITags, tags). Filter(c.RbacService.CheckPerm("cloudshell", "create")). - Returns(200, "OK", apis.EmptyResponse{}). Returns(400, "Bad Request", bcode.Bcode{}). Writes(apis.EmptyResponse{}).Do(returns200, returns500)) @@ -138,7 +136,6 @@ func (c *CloudShellView) GetWebServiceRoute() *restful.WebService { Operation("proxyPath"). Param(ws.PathParameter("subpath", "subpath").DataType("string")). Filter(c.RbacService.CheckPerm("cloudshell", "create")). - Returns(200, "OK", apis.EmptyResponse{}). Returns(400, "Bad Request", bcode.Bcode{}). Writes(apis.EmptyResponse{}).Do(returns200, returns500)) diff --git a/pkg/server/interfaces/api/cluster.go b/pkg/server/interfaces/api/cluster.go index a2a9151fc..92d7d4c4f 100644 --- a/pkg/server/interfaces/api/cluster.go +++ b/pkg/server/interfaces/api/cluster.go @@ -56,7 +56,7 @@ func (c *Cluster) GetWebServiceRoute() *restful.WebService { Param(ws.QueryParameter("pageSize", "PageSize for paging").DataType("integer").DefaultValue("20")). Returns(200, "OK", apis.ListClusterResponse{}). Returns(400, "Bad Request", bcode.Bcode{}). - Writes(apis.ListClusterResponse{}).Do(returns200, returns500)) + Writes(apis.ListClusterResponse{}).Do(returns500)) ws.Route(ws.POST("/").To(c.createKubeCluster). Doc("create cluster"). diff --git a/pkg/server/interfaces/api/definition.go b/pkg/server/interfaces/api/definition.go index 19f2718ab..5d37cbdab 100644 --- a/pkg/server/interfaces/api/definition.go +++ b/pkg/server/interfaces/api/definition.go @@ -54,7 +54,7 @@ func (d *definition) GetWebServiceRoute() *restful.WebService { Param(ws.QueryParameter("ownerAddon", "query by which addon created the definition").DataType("string")). Param(ws.QueryParameter("scope", "query by the specified scope like WorkflowRun or Application").DataType("string")). Returns(200, "OK", apis.ListDefinitionResponse{}). - Writes(apis.ListDefinitionResponse{}).Do(returns200, returns500)) + Writes(apis.ListDefinitionResponse{}).Do(returns500)) ws.Route(ws.GET("/{definitionName}").To(d.detailDefinition). Doc("Detail a definition"). @@ -63,7 +63,7 @@ func (d *definition) GetWebServiceRoute() *restful.WebService { Param(ws.QueryParameter("type", "query the definition type").DataType("string")). Metadata(restfulspec.KeyOpenAPITags, tags). Returns(200, "create successfully", apis.DetailDefinitionResponse{}). - Writes(apis.DetailDefinitionResponse{}).Do(returns200, returns500)) + Writes(apis.DetailDefinitionResponse{}).Do(returns500)) ws.Route(ws.PUT("/{definitionName}/uischema").To(d.updateUISchema). Doc("Update the UI schema for a definition"). @@ -72,7 +72,7 @@ func (d *definition) GetWebServiceRoute() *restful.WebService { Param(ws.PathParameter("definitionName", "identifier of the definition").DataType("string").Required(true)). Reads(apis.UpdateUISchemaRequest{}). Returns(200, "update successfully", schema.UISchema{}). - Writes(apis.DetailDefinitionResponse{}).Do(returns200, returns500)) + Writes(apis.DetailDefinitionResponse{}).Do(returns500)) ws.Route(ws.PUT("/{definitionName}/status").To(d.updateDefinitionStatus). Doc("Update the status for a definition"). @@ -81,7 +81,7 @@ func (d *definition) GetWebServiceRoute() *restful.WebService { Param(ws.PathParameter("definitionName", "identifier of the definition").DataType("string").Required(true)). Reads(apis.UpdateDefinitionStatusRequest{}). Returns(200, "update successfully", schema.UISchema{}). - Writes(apis.DetailDefinitionResponse{}).Do(returns200, returns500)) + Writes(apis.DetailDefinitionResponse{}).Do(returns500)) ws.Filter(authCheckFilter) return ws diff --git a/pkg/server/interfaces/api/plugin.go b/pkg/server/interfaces/api/plugin.go index 60e87a24d..f64234455 100644 --- a/pkg/server/interfaces/api/plugin.go +++ b/pkg/server/interfaces/api/plugin.go @@ -61,13 +61,14 @@ func (p *Plugin) GetWebServiceRoute() *restful.WebService { Doc("List the enabled plugins"). Metadata(restfulspec.KeyOpenAPITags, tags). Returns(200, "OK", apis.ListPluginResponse{}). - Writes(apis.ListPluginResponse{}).Do(returns200, returns500)) + Writes(apis.ListPluginResponse{}).Do(returns500)) ws.Route(ws.GET("/{pluginId}").To(p.detailPlugin). Doc("Detail an installed plugin"). Metadata(restfulspec.KeyOpenAPITags, tags). + Param(ws.PathParameter("pluginId", "identifier of the plugin.").DataType("string")). Returns(200, "OK", apis.PluginDTO{}). - Writes(apis.PluginDTO{}).Do(returns200, returns500)) + Writes(apis.PluginDTO{}).Do(returns500)) ws.Filter(authCheckFilter) return ws @@ -88,51 +89,57 @@ func (p *ManagePlugin) GetWebServiceRoute() *restful.WebService { Metadata(restfulspec.KeyOpenAPITags, tags). Filter(p.RBACService.CheckPerm("managePlugin", "list")). Returns(200, "OK", apis.ListPluginResponse{}). - Writes(apis.ListManagedPluginResponse{}).Do(returns200, returns500)) + Writes(apis.ListPluginResponse{}).Do(returns500)) ws.Route(ws.GET("/{pluginId}").To(p.detailPlugin). Doc("Detail an installed plugin"). Metadata(restfulspec.KeyOpenAPITags, tags). Filter(p.RBACService.CheckPerm("managePlugin", "detail")). + Param(ws.PathParameter("pluginId", "identifier of the plugin.").DataType("string")). Returns(200, "OK", apis.ManagedPluginDTO{}). - Writes(apis.PluginDTO{}).Do(returns200, returns500)) + Writes(apis.PluginDTO{}).Do(returns500)) ws.Route(ws.POST("/{pluginId}/setting").To(p.pluginSetting). Doc("Set an installed plugin"). Metadata(restfulspec.KeyOpenAPITags, tags). Filter(p.RBACService.CheckPerm("managePlugin", "update")). + Param(ws.PathParameter("pluginId", "identifier of the plugin.").DataType("string")). Returns(200, "OK", apis.ManagedPluginDTO{}). - Writes(apis.PluginDTO{}).Do(returns200, returns500)) + Writes(apis.PluginDTO{}).Do(returns500)) ws.Route(ws.POST("/{pluginId}/install").To(p.installPlugin). Doc("Install one specific plugin"). Metadata(restfulspec.KeyOpenAPITags, tags). Reads(apis.InstallPluginRequest{}). Filter(p.RBACService.CheckPerm("managePlugin", "enable")). + Param(ws.PathParameter("pluginId", "identifier of the plugin.").DataType("string")). Returns(200, "OK", apis.ManagedPluginDTO{}). - Writes(apis.PluginDTO{}).Do(returns200, returns500)) + Writes(apis.PluginDTO{}).Do(returns500)) ws.Route(ws.POST("/{pluginId}/uninstall").To(p.uninstallPlugin). Doc("Uninstall one specific plugin"). Metadata(restfulspec.KeyOpenAPITags, tags). Filter(p.RBACService.CheckPerm("managePlugin", "enable")). + Param(ws.PathParameter("pluginId", "identifier of the plugin.").DataType("string")). Returns(200, "OK", struct{}{}). - Writes(apis.PluginDTO{}).Do(returns200, returns500)) + Writes(apis.PluginDTO{}).Do(returns500)) ws.Route(ws.POST("/{pluginId}/enable").To(p.enablePlugin). Doc("Enable an installed plugin"). Metadata(restfulspec.KeyOpenAPITags, tags). Reads(apis.PluginEnableRequest{}). Filter(p.RBACService.CheckPerm("managePlugin", "enable")). + Param(ws.PathParameter("pluginId", "identifier of the plugin.").DataType("string")). Returns(200, "OK", apis.ManagedPluginDTO{}). - Writes(apis.PluginDTO{}).Do(returns200, returns500)) + Writes(apis.PluginDTO{}).Do(returns500)) ws.Route(ws.POST("/{pluginId}/disable").To(p.disablePlugin). Doc("Disable an installed plugin"). Metadata(restfulspec.KeyOpenAPITags, tags). Filter(p.RBACService.CheckPerm("managePlugin", "enable")). + Param(ws.PathParameter("pluginId", "identifier of the plugin.").DataType("string")). Returns(200, "OK", apis.ManagedPluginDTO{}). - Writes(apis.PluginDTO{}).Do(returns200, returns500)) + Writes(apis.PluginDTO{}).Do(returns500)) ws.Filter(authCheckFilter) return ws @@ -205,6 +212,7 @@ func (p *ManagePlugin) uninstallPlugin(req *restful.Request, res *restful.Respon } func (p *ManagePlugin) detailPlugin(req *restful.Request, res *restful.Response) { + plugin, err := p.PluginService.DetailInstalledPlugin(req.Request.Context(), req.PathParameter("pluginId")) if err != nil { bcode.ReturnError(req, res, err) diff --git a/pkg/server/interfaces/api/target.go b/pkg/server/interfaces/api/target.go index e2e02cb0f..21a9fa230 100644 --- a/pkg/server/interfaces/api/target.go +++ b/pkg/server/interfaces/api/target.go @@ -64,7 +64,7 @@ func (dt *Target) GetWebServiceRoute() *restful.WebService { Param(ws.QueryParameter("pageSize", "PageSize for paging").DataType("integer")). Param(ws.QueryParameter("project", "list targets by project name").DataType("string")). Returns(200, "OK", apis.ListTargetResponse{}). - Writes(apis.ListTargetResponse{}).Do(returns200, returns500)) + Writes(apis.ListTargetResponse{}).Do(returns500)) ws.Route(ws.POST("/").To(dt.createTarget). Doc("create Target"). @@ -73,7 +73,7 @@ func (dt *Target) GetWebServiceRoute() *restful.WebService { Filter(dt.RbacService.CheckPerm("target", "create")). Returns(200, "create success", apis.DetailTargetResponse{}). Returns(400, "create failure", bcode.Bcode{}). - Writes(apis.DetailTargetResponse{}).Do(returns200, returns500)) + Writes(apis.DetailTargetResponse{}).Do(returns500)) ws.Route(ws.GET("/{targetName}").To(dt.detailTarget). Doc("detail Target"). @@ -82,7 +82,7 @@ func (dt *Target) GetWebServiceRoute() *restful.WebService { Filter(dt.targetCheckFilter). Filter(dt.RbacService.CheckPerm("target", "detail")). Returns(200, "create success", apis.DetailTargetResponse{}). - Writes(apis.DetailTargetResponse{}).Do(returns200, returns500)) + Writes(apis.DetailTargetResponse{}).Do(returns500)) ws.Route(ws.PUT("/{targetName}").To(dt.updateTarget). Doc("update application Target config"). @@ -92,7 +92,7 @@ func (dt *Target) GetWebServiceRoute() *restful.WebService { Reads(apis.UpdateTargetRequest{}). Filter(dt.RbacService.CheckPerm("target", "update")). Returns(200, "OK", apis.DetailTargetResponse{}). - Writes(apis.DetailTargetResponse{}).Do(returns200, returns500)) + Writes(apis.DetailTargetResponse{}).Do(returns500)) ws.Route(ws.DELETE("/{targetName}").To(dt.deleteTarget). Doc("deletet Target"). @@ -100,7 +100,6 @@ func (dt *Target) GetWebServiceRoute() *restful.WebService { Filter(dt.targetCheckFilter). Filter(dt.RbacService.CheckPerm("target", "delete")). Param(ws.PathParameter("targetName", "identifier of the Target").DataType("string")). - Returns(200, "OK", apis.EmptyResponse{}). Writes(apis.EmptyResponse{}).Do(returns200, returns500)) ws.Filter(authCheckFilter)