Procházet zdrojové kódy

doc: deploymentswagger注解

370774330@qq.com před 5 roky
rodič
revize
93934eb672

+ 66 - 0
web/src/main/java/seecoder/devcloud/web/controller/pipeline/DeploymentController.java

@@ -0,0 +1,66 @@
+package seecoder.devcloud.web.controller.pipeline;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import seecoder.devcloud.web.model.vo.Response;
+import seecoder.devcloud.web.model.vo.pipeline.DeploymentInfoVO;
+import seecoder.devcloud.web.service.pipeline.DeploymentService;
+
+import java.util.List;
+
+/**
+ * @author PuHong Weng
+ * @date 2021/3/12
+ * @description:
+ */
+@RestController("/deployments")
+@ResponseBody
+@Api(value = "流水线部署的实例")
+public class DeploymentController {
+
+    private final DeploymentService deploymentService;
+
+    @Autowired
+    public DeploymentController(DeploymentService deploymentService) {
+        this.deploymentService = deploymentService;
+    }
+
+    @ApiOperation(value = "获取项目所有部署的实例信息", httpMethod = "GET")
+    @ApiImplicitParam(name = "projectId", dataType = "int")
+    public Response<List<DeploymentInfoVO>> retrieveDeploymentInfos(@RequestParam("projectId")Integer projectId){
+        return Response.buildSuccess(deploymentService.retrieveDeploymentInfos(projectId));
+    }
+
+
+    @ApiOperation(value = "执行流水线构建实例", httpMethod = "POST")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "projectId", dataType = "int"),
+            @ApiImplicitParam(name = "pipelineId", dataType = "int")
+    })
+    public Response deploy(@RequestParam("projectId")Integer projectId,
+                           @RequestParam("pipelineId")Integer pipelineId){
+        deploymentService.deploy(projectId,pipelineId);
+        return Response.buildSuccess();
+    }
+
+    /**
+     * 执行一条pipepine
+     * todo 异步/异步异常捕获刷新result
+     */
+    @ApiOperation(value = "删除一个实例", httpMethod = "DELETE")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "projectId", dataType = "int"),
+            @ApiImplicitParam(name = "pipelineId", dataType = "int")
+    })
+    public Response delete(@RequestParam("projectId")Integer projectId,
+                @RequestParam("pipelineId")Integer pipelineId){
+        deploymentService.deploy(projectId,pipelineId);
+        return Response.buildSuccess();
+    }
+}

+ 1 - 1
web/src/main/java/seecoder/devcloud/web/controller/pipeline/PipelineController.java

@@ -92,7 +92,7 @@ public class PipelineController {
         return Response.buildSuccess();
     }
 
-    @ApiOperation(value = "删除一条流水线", httpMethod = "PUT")
+    @ApiOperation(value = "删除一条流水线", httpMethod = "DELETE")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "projectId", dataType = "int"),
             @ApiImplicitParam(name = "pipelineId", dataType = "int"),

+ 2 - 2
web/src/main/java/seecoder/devcloud/web/controller/user/UserController.java

@@ -12,7 +12,7 @@ import seecoder.devcloud.web.service.user.UserService;
  * @date 2021/3/5
  * @description:
  */
-@RestController("/user")
+@RestController("/users/")
 @ResponseBody
 public class UserController {
 
@@ -23,7 +23,7 @@ public class UserController {
         this.userService = userService;
     }
 
-    @GetMapping()
+    @GetMapping("/")
     public Response getLoginUser(){
         return Response.buildSuccess(userService.getLoginUser());
     }

+ 15 - 21
web/src/main/java/seecoder/devcloud/web/model/vo/pipeline/DeploymentInfoVO.java

@@ -1,5 +1,7 @@
 package seecoder.devcloud.web.model.vo.pipeline;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.sql.Timestamp;
@@ -10,32 +12,24 @@ import java.sql.Timestamp;
  * @description:
  */
 @Data
+@ApiModel("流水线部署的实例信息")
 public class DeploymentInfoVO {
 
-    Integer id;
+    @ApiModelProperty("实例id")
+    private Integer id;
 
-    /**
-     * 对应关联的流水线 todo sql外键
-     */
-    Integer pipelineId;
+    @ApiModelProperty("关联的流水线")
+    private Integer pipelineId;
 
-    /**
-     * 部署的项目名称
-     */
-    String name;
+    @ApiModelProperty("部署的实例名称")
+    private String name;
 
-    /**
-     * 最新一次部署时间
-     */
-    Timestamp deployedTime;
+    @ApiModelProperty("最新一次部署时间")
+    private Timestamp deployedTime;
 
-    /**
-     * 访问的url地址
-     */
-    String accessUrl;
+    @ApiModelProperty("实例的访问地址")
+    private String accessUrl;
 
-    /**
-     * 实例状态
-     */
-    String status;
+    @ApiModelProperty("实例运行状态")
+    private String status;
 }

+ 4 - 1
web/src/main/java/seecoder/devcloud/web/model/vo/pipeline/PipelineInfoVO.java

@@ -2,8 +2,10 @@ package seecoder.devcloud.web.model.vo.pipeline;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 import seecoder.devcloud.web.model.po.pipeline.Pipeline;
 import seecoder.devcloud.web.model.po.pipeline.PipelineHistory;
 
@@ -17,9 +19,9 @@ import java.sql.Timestamp;
 @Data
 @Builder
 @ApiModel("一条流水线基本信息")
+@AllArgsConstructor
 public class PipelineInfoVO {
 
-
     @ApiModelProperty("流水线id")
     Integer id;
 
@@ -46,4 +48,5 @@ public class PipelineInfoVO {
         name = pipeline.getName();
         id =pipeline.getId();
     }
+
 }

+ 1 - 1
web/src/main/java/seecoder/devcloud/web/service/pipeline/DeploymentService.java

@@ -24,7 +24,7 @@ public interface DeploymentService {
     void deploy(Integer projectId,Integer pipelineId);
 
     /**
-     * 执行一条pipepine
+     * 删除一个实例
      * todo 异步/异步异常捕获刷新result
      */
     void delete(Integer projectId,Integer pipelineId);

+ 3 - 1
web/src/main/resources/application-wph.yml

@@ -39,7 +39,9 @@ seecoder:
     token: wXDeETv2Kmt-JhiApJ9H
   mail:
     from: 370774330@qq.com
-
+  git:
+    password: mock
+    username: mock
 
   jenkins:
     host: http://192.168.68.79:8082