Переглянути джерело

doc: 补全project相关api

370774330@qq.com 5 роки тому
батько
коміт
895bc8ae62

+ 4 - 4
web/pom.xml

@@ -80,10 +80,10 @@
             <artifactId>mybatis-spring-boot-starter-test</artifactId>
             <version>2.1.4</version>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.springframework.boot</groupId>-->
-<!--            <artifactId>spring-boot-starter-security</artifactId>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-test</artifactId>

+ 35 - 33
web/src/main/java/seecoder/devcloud/web/controller/gitlab/HookController.java

@@ -1,33 +1,35 @@
-package seecoder.devcloud.web.controller.gitlab;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import seecoder.devcloud.web.model.vo.GitWebHookVO;
-
-/**
- * @author chenyz
- * @date 2021/2/4
- * @description: 与GitLab进行交互的接口
- */
-@Api(tags = "GitLab Hook API")
-@RestController
-@RequestMapping("/hook")
-public class HookController {
-
-    /**
-     * @author chenyz
-     * @date 2021/2/4
-     * @description: 此接口挂载在webhooks的push回调中
-     */
-    @ApiOperation("push回调接口")
-    @PostMapping("/push")
-    public void pushHook(@RequestBody GitWebHookVO gitWebHookVO)
-    {
-        System.out.println(gitWebHookVO);
-        // todo:提取commit信息并进行处理
-    }
-}
+//package seecoder.devcloud.web.controller.gitlab;
+//
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiImplicitParam;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//import seecoder.devcloud.web.model.vo.GitWebHookVO;
+//
+///**
+// * @author chenyz
+// * @date 2021/2/4
+// * @description: 与GitLab进行交互的接口
+// */
+//@Api(tags = "GitLab Hook API")
+//@RestController
+//@RequestMapping("/hook")
+//public class HookController {
+//
+//    /**
+//     * @author chenyz
+//     * @date 2021/2/4
+//     * @description: 此接口挂载在webhooks的push回调中
+//     */
+//    @ApiOperation(value = "push回调接口", httpMethod = "POST")
+//    @PostMapping("/push")
+//    @ApiImplicitParam(value = "gitWebHookVO",dataTypeClass = GitWebHookVO.class, paramType = "body")
+//    public void pushHook(@RequestBody GitWebHookVO gitWebHookVO)
+//    {
+//        System.out.println(gitWebHookVO);
+//        // todo:提取commit信息并进行处理
+//    }
+//}

+ 5 - 9
web/src/main/java/seecoder/devcloud/web/controller/pipeline/DeploymentController.java

@@ -30,7 +30,7 @@ public class DeploymentController {
     }
 
     @ApiOperation(value = "获取项目所有部署的实例信息", httpMethod = "GET")
-    @ApiImplicitParam(name = "projectId", dataType = "int", paramType = "query")
+    @ApiImplicitParam(name = "projectId", dataTypeClass = Integer.class, paramType = "query")
     @GetMapping("/list")
     public Response<List<DeploymentInfoVO>> retrieveDeploymentInfos(@RequestParam("projectId")Integer projectId){
         return Response.buildSuccess(deploymentService.retrieveDeploymentInfos(projectId));
@@ -39,8 +39,8 @@ public class DeploymentController {
 
     @ApiOperation(value = "执行流水线构建实例", httpMethod = "POST")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "projectId", dataType = "int",paramType = "query"),
-            @ApiImplicitParam(name = "pipelineId", dataType = "int",paramType = "query")
+            @ApiImplicitParam(name = "projectId", dataTypeClass = Integer.class,paramType = "query"),
+            @ApiImplicitParam(name = "pipelineId", dataTypeClass = Integer.class,paramType = "query")
     })
     @PostMapping
     public Response deploy(@RequestParam("projectId")Integer projectId,
@@ -49,14 +49,10 @@ public class DeploymentController {
         return Response.buildSuccess();
     }
 
-    /**
-     * 执行一条pipepine
-     * todo 异步/异步异常捕获刷新result
-     */
     @ApiOperation(value = "删除一个部署的实例", httpMethod = "DELETE")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "projectId", dataType = "int",paramType = "query"),
-            @ApiImplicitParam(name = "pipelineId", dataType = "int",paramType = "query")
+            @ApiImplicitParam(name = "projectId", dataTypeClass = Integer.class,paramType = "query"),
+            @ApiImplicitParam(name = "pipelineId", dataTypeClass = Integer.class,paramType = "query")
     })
     @DeleteMapping
     public Response delete(@RequestParam("projectId")Integer projectId,

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

@@ -37,7 +37,7 @@ public class PipelineController {
 
     @GetMapping("/list")
     @ApiOperation(value = "获取指定项目的所有流水线基本信息", httpMethod = "GET")
-    @ApiImplicitParam(name = "projectId", dataType = "int",paramType = "query")
+    @ApiImplicitParam(name = "projectId", dataTypeClass = Integer.class,paramType = "query")
     public Response<List<PipelineInfoVO>> retrievePipelineInfos(@RequestParam("projectId") Integer projectId){
         return Response.buildSuccess(pipelineService.retrievePipelineInfos(projectId));
     }
@@ -45,8 +45,8 @@ public class PipelineController {
     @GetMapping
     @ApiOperation(value = "获取指定一条流水线的配置json信息", httpMethod = "GET")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "projectId", dataType = "int",paramType = "query"),
-            @ApiImplicitParam(name = "pipelineId", dataType = "int",paramType = "query")
+            @ApiImplicitParam(name = "projectId", dataTypeClass = Integer.class,paramType = "query"),
+            @ApiImplicitParam(name = "pipelineId", dataTypeClass = Integer.class,paramType = "query")
     })
     public Response<PipelineConfigVO> retrievePipelineConfig(@RequestParam("projectId")Integer projectId,
                                                              @RequestParam("pipelineId")Integer pipelineId){
@@ -57,8 +57,8 @@ public class PipelineController {
     @GetMapping("/history/list")
     @ApiOperation(value = "获取指定一条流水线的历史构建信息列表", httpMethod = "GET")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "projectId", dataType = "int",paramType = "query"),
-            @ApiImplicitParam(name = "pipelineId", dataType = "int",paramType = "query")
+            @ApiImplicitParam(name = "projectId", dataTypeClass = Integer.class,paramType = "query"),
+            @ApiImplicitParam(name = "pipelineId", dataTypeClass = Integer.class,paramType = "query")
     })
     public Response<List<PipelineHistoryVO>> retrievePipelineHistory(@RequestParam("projectId")Integer projectId,
                                                                      @RequestParam("pipelineId")Integer pipelineId){
@@ -67,7 +67,7 @@ public class PipelineController {
 
 
     @ApiOperation(value = "依据模板创建一个流水线配置", httpMethod = "POST")
-    @ApiImplicitParam(name = "pipelineCreateVO", value = "流水线创建配置信息",dataType = "PipelineCreateVO",paramType = "body")
+    @ApiImplicitParam(name = "pipelineCreateVO", value = "流水线创建配置信息",dataTypeClass = PipelineCreateVO.class,paramType = "body")
     @PostMapping
     public Response createPipelineConfig(@RequestBody PipelineCreateVO pipelineCreateVO){
         pipelineService.createPipelineConfig(pipelineCreateVO);
@@ -77,9 +77,9 @@ public class PipelineController {
     @PutMapping("/config")
     @ApiOperation(value = "保存修改一条流水线的json配置信息", httpMethod = "PUT")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "projectId", dataType = "int",paramType = "query"),
-            @ApiImplicitParam(name = "pipelineId", dataType = "int",paramType = "query"),
-            @ApiImplicitParam(name = "configJson", dataType = "String",paramType = "query")
+            @ApiImplicitParam(name = "projectId", dataTypeClass = Integer.class,paramType = "query"),
+            @ApiImplicitParam(name = "pipelineId", dataTypeClass = Integer.class,paramType = "query"),
+            @ApiImplicitParam(name = "configJson", dataTypeClass = String.class,paramType = "query")
     })
     public Response savePipelineConfig(@RequestParam("projectId")Integer projectId,
                                        @RequestParam("pipelineId")Integer pipelineId,
@@ -91,8 +91,8 @@ public class PipelineController {
 
     @ApiOperation(value = "删除一条流水线", httpMethod = "DELETE")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "projectId", dataType = "int",paramType = "query"),
-            @ApiImplicitParam(name = "pipelineId", dataType = "int",paramType = "query"),
+            @ApiImplicitParam(name = "projectId", dataTypeClass = Integer.class,paramType = "query"),
+            @ApiImplicitParam(name = "pipelineId", dataTypeClass = Integer.class,paramType = "query"),
     })
     @DeleteMapping
     public Response deletePipelineInfo(Integer projectId,Integer pipelineId){

+ 14 - 8
web/src/main/java/seecoder/devcloud/web/controller/project/ProjectController.java

@@ -1,6 +1,7 @@
 package seecoder.devcloud.web.controller.project;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -16,7 +17,7 @@ import java.util.List;
  * @date 2021/3/10
  * @description: 项目接口
  */
-@Api("项目相关API")
+@Api(tags = "项目相关 API")
 @RestController
 @RequestMapping("/project")
 public class ProjectController {
@@ -24,32 +25,37 @@ public class ProjectController {
     ProjectService projectService;
 
 
-    @ApiOperation("根据group获取Project列表")
+    @ApiOperation(value = "根据group获取Project列表", httpMethod = "GET")
     @GetMapping("/listByGroup/{groupId}")
+    @ApiImplicitParam(value = "groupId",dataTypeClass = Integer.class, paramType = "path")
     public Response<List<Project>> listProjectsByGroupId(@PathVariable("groupId")int groupId){
         return projectService.listProjectsByGroupId(groupId);
     }
 
-    @ApiOperation("根据user获取Project列表")
+    @ApiOperation(value = "根据user获取Project列表", httpMethod = "GET")
     @GetMapping("/listByUser/{userId}")
+    @ApiImplicitParam(value = "userId",dataTypeClass = Integer.class, paramType = "path")
     public Response<List<Project>> listProjectsByUserId(@PathVariable("userId")int userId){
         return projectService.listProjectsByUserId(userId);
     }
 
-    @ApiOperation("根据projectId获取Project")
+    @ApiOperation(value = "根据projectId获取Project", httpMethod = "GET")
     @GetMapping("/{projectId}")
+    @ApiImplicitParam(value = "projectId",dataTypeClass = Integer.class, paramType = "path")
     public Response<Project> getProjectById(@PathVariable("projectId")int projectId){
         return projectService.getProjectById(projectId);
     }
 
-    @ApiOperation("创建项目,传入的参数中不必带有效的projectId字段,返回一个创建后的结果,注入id")
+    @ApiOperation(value = "创建项目,传入的参数中不必带有效的projectId字段,返回一个创建后的结果,注入id", httpMethod = "POST")
     @PostMapping("/create")
-    public Response<Project> createProject(ProjectVO project){
+    @ApiImplicitParam(value = "project",dataTypeClass = ProjectVO.class, paramType = "body")
+    public Response<Project> createProject(@RequestBody ProjectVO project){
         return projectService.createProject(project);
     }
 
-    @ApiOperation("根据projectId删除项目")
-    @GetMapping("/delete/{projectId}")
+    @ApiOperation(value = "根据projectId删除项目", httpMethod = "DELETE")
+    @DeleteMapping("/delete/{projectId}")
+    @ApiImplicitParam(value = "projectId",dataTypeClass = Integer.class, paramType = "path")
     public Response deleteProject(@PathVariable("projectId")int projectId){
         return projectService.deleteProject(projectId);
     }

+ 73 - 73
web/src/main/java/seecoder/devcloud/web/controller/tree/TreeNodesController.java

@@ -1,73 +1,73 @@
-package seecoder.devcloud.web.controller.tree;
-
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import seecoder.devcloud.web.model.po.tree.TreeNodePO;
-import seecoder.devcloud.web.model.vo.Response;
-import seecoder.devcloud.web.model.vo.TreeNodeVO;
-import seecoder.devcloud.web.service.tree.TreeNodeService;
-
-
-
-import java.util.List;
-
-/**
- * @Author cyz,xzh
- * @Description 需求树相关操作
- */
-@Api("需求相关API")
-@RestController
-@RequestMapping("/tree")
-public class TreeNodesController {
-    @Autowired
-    private TreeNodeService treeNodeService;
-    //注意 这里混用po和vo了
-    @ApiOperation("获取所有nodes")
-    @GetMapping("/all")
-    public List<TreeNodePO> getAllNodes(){
-        return treeNodeService.getAllNodes();
-    }
-
-    /**
-     * 获取某个项目所有需求情况
-     * @param projectId
-     * @return
-     */
-    @ApiOperation(value = "获取project_id对应的所有nodes",httpMethod = "GET")
-    @GetMapping("/{projectId}")
-    @ApiImplicitParam(value = "projectId",dataType = "int", paramType = "path")
-    public Response listTreeNodesByProjectId(@PathVariable("projectId") int projectId){
-        return treeNodeService.listTreeNodesByProjectId(projectId);
-    }
-
-    @ApiOperation("插入节点")
-    @PostMapping("/node")
-    public Response insertTreeNode(TreeNodeVO treeNodeVO){
-        return treeNodeService.insertTreeNode(treeNodeVO);
-    }
-
-    @ApiOperation("根据nodeId删除节点")
-    @DeleteMapping("/node/{nodeId}")
-    @ApiImplicitParam(value = "nodeId",dataType = "int", paramType = "path")
-    public Response deleteTreeNode(@PathVariable("nodeId") int nodeId) {
-        return Response.buildSuccess(treeNodeService.deleteTreeNode(nodeId));
-    }
-    @ApiOperation("根据父节点fatherId创建一个子节点并返回")
-    @PostMapping("/subNode/{fatherId}")
-    @ApiImplicitParam(value = "fatherId",dataType = "int", paramType = "path")
-    public Response insertTreeNodeByFatherNode(@PathVariable("fatherId") int fatherId){
-        Response res = treeNodeService.insertTreeNodeByFatherNode(fatherId);
-        return res;
-    }
-
-    @ApiOperation("修改节点属性")
-    @PutMapping("/node")
-    @ApiImplicitParam(value = "treeNodeVO",dataType = "TreeNodeVO", paramType = "body")
-    public Response updateTreeNode(@RequestBody TreeNodeVO treeNodeVO){
-        return treeNodeService.updateTreeNode(treeNodeVO);
-    }
-}
+//package seecoder.devcloud.web.controller.tree;
+//
+//
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiImplicitParam;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.*;
+//import seecoder.devcloud.web.model.po.tree.TreeNodePO;
+//import seecoder.devcloud.web.model.vo.Response;
+//import seecoder.devcloud.web.model.vo.TreeNodeVO;
+//import seecoder.devcloud.web.service.tree.TreeNodeService;
+//
+//
+//
+//import java.util.List;
+//
+///**
+// * @Author cyz,xzh
+// * @Description 需求树相关操作
+// */
+//@Api("需求相关API")
+//@RestController
+//@RequestMapping("/tree")
+//public class TreeNodesController {
+//    @Autowired
+//    private TreeNodeService treeNodeService;
+//    //注意 这里混用po和vo了
+//    @ApiOperation("获取所有nodes")
+//    @GetMapping("/all")
+//    public List<TreeNodePO> getAllNodes(){
+//        return treeNodeService.getAllNodes();
+//    }
+//
+//    /**
+//     * 获取某个项目所有需求情况
+//     * @param projectId
+//     * @return
+//     */
+//    @ApiOperation(value = "获取project_id对应的所有nodes",httpMethod = "GET")
+//    @GetMapping("/{projectId}")
+//    @ApiImplicitParam(value = "projectId", dataTypeClass = Integer.class, paramType = "path")
+//    public Response<List<TreeNodePO>> listTreeNodesByProjectId(@PathVariable("projectId") int projectId){
+//        return treeNodeService.listTreeNodesByProjectId(projectId);
+//    }
+//
+//    @ApiOperation(value = "插入节点", httpMethod = "POST")
+//    @PostMapping("/node")
+//    public Response insertTreeNode(TreeNodeVO treeNodeVO){
+//        return treeNodeService.insertTreeNode(treeNodeVO);
+//    }
+//
+//    @ApiOperation(value = "根据nodeId删除节点", httpMethod = "DELETE")
+//    @DeleteMapping("/node/{nodeId}")
+//    @ApiImplicitParam(value = "nodeId",dataTypeClass = Integer.class, paramType = "path")
+//    public Response deleteTreeNode(@PathVariable("nodeId") int nodeId) {
+//        return Response.buildSuccess(treeNodeService.deleteTreeNode(nodeId));
+//    }
+//    @ApiOperation(value = "根据父节点fatherId创建一个子节点并返回", httpMethod = "POST")
+//    @PostMapping("/subNode/{fatherId}")
+//    @ApiImplicitParam(value = "fatherId",dataTypeClass = Integer.class, paramType = "path")
+//    public Response insertTreeNodeByFatherNode(@PathVariable("fatherId") int fatherId){
+//        Response res = treeNodeService.insertTreeNodeByFatherNode(fatherId);
+//        return res;
+//    }
+//
+//    @ApiOperation(value = "修改节点属性", httpMethod = "PUT")
+//    @PutMapping("/node")
+//    @ApiImplicitParam(value = "treeNodeVO",dataTypeClass = TreeNodeVO.class, paramType = "body")
+//    public Response updateTreeNode(@RequestBody TreeNodeVO treeNodeVO){
+//        return treeNodeService.updateTreeNode(treeNodeVO);
+//    }
+//}

+ 2 - 0
web/src/main/java/seecoder/devcloud/web/model/vo/GitWebHookVO.java

@@ -1,5 +1,6 @@
 package seecoder.devcloud.web.model.vo;
 
+import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.ToString;
@@ -8,6 +9,7 @@ import java.util.List;
 
 @Data
 @ToString
+@ApiModel("git webhook设置")
 public class GitWebHookVO {
     private String object_kind;
     private String before;

+ 8 - 0
web/src/main/java/seecoder/devcloud/web/model/vo/project/ProjectVO.java

@@ -1,5 +1,7 @@
 package seecoder.devcloud.web.model.vo.project;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -12,10 +14,16 @@ import lombok.NoArgsConstructor;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
+@ApiModel("项目信息")
 public class ProjectVO {
+    @ApiModelProperty("项目id")
     private Integer id;
+    @ApiModelProperty("项目名称")
     private String name;
+    @ApiModelProperty("项目gitlab url")
     private String gitRemoteUrl;
+    @ApiModelProperty("项目描述")
     private String description;
+    @ApiModelProperty("项目所属组id")
     private Integer groupId;
 }