zoukankan      html  css  js  c++  java
  • SpringBoot开发mockserver及生成swagger接口文档

    通过springboot开发mock server,包含get及post接口,用于练习接口自动化及jmeter很方便

    当然,也为后面jenkins持续集成做基础(开发push代码后  → jenkins自动构建  → 打包  → 重启服务器  → 自动执行自动化测试脚本  → 生成测试报告  → 发送邮件)

    项目目录

    接口

    package com.uncleyong.testdemo.service;
    
    import com.uncleyong.testdemo.model.User;
    
    
    public interface UserService {
        Object queryUserById(int id);
        Object deleteUserById(int id);
        Object updateUserById(int id, String department);
        Object addUser(int id, String name, String sex, String department);
    }

    实现

    package com.uncleyong.testdemo.service.impl;
    
    import com.uncleyong.testdemo.model.JsonData;
    import com.uncleyong.testdemo.model.User;
    import com.uncleyong.testdemo.service.UserService;
    import org.springframework.stereotype.Service;
    
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Override
        public Object queryUserById(int id) {
            System.out.println(">>>>>>>>>>>>>>>>>>>>查询用户");
            User user = new User();
            user.setId(id);
            user.setName("jack" + id);
            user.setSex("男");
            user.setDepartment("测试开发部");
            return JsonData.querySuccess(user);
        }
    
    
        @Override
        public Object deleteUserById(int id) {
            System.out.println(">>>>>>>>>>>>>>>>>>>>删除用户");
            User user = new User();
            user.setId(id);
            user.setName("jack" + id);
            user.setSex("男");
            user.setDepartment("测试开发部");
            return JsonData.deleteSuccess(user);
        }
    
        @Override
        public Object updateUserById(int id, String department) {
            System.out.println(">>>>>>>>>>>>>>>>>>>>更新用户");
            User user = new User();
            user.setId(id);
            user.setName("jack" + id);
            user.setSex("男");
            user.setDepartment(department);
            return JsonData.updateFail(user);
        }
    
        @Override
        public Object addUser(int id, String name, String sex, String department) {
            System.out.println(">>>>>>>>>>>>>>>>>>>>新增用户");
            System.out.println("id:" + id + ", name:" + name + ", sex:" + sex + ", department:" + department);
            User user = new User();
            user.setId(id);
            user.setName(name);
            user.setSex(sex);
            user.setDepartment(department);
            return JsonData.addSuccess(user);
        }
    }
    

    controller

    package com.uncleyong.testdemo.controller;
    
    import com.uncleyong.testdemo.service.UserService;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    
    @RestController
    @RequestMapping("/api/v1/user")
    @Api(value = "/api/v1/user", description = "用户管理")
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @RequestMapping(value = "/queryById", method = RequestMethod.GET)
        @ApiOperation(value = "查询用户",httpMethod = "GET")
        public Object qryUser(@RequestParam(name="userId")int userId){
            return userService.queryUserById(userId);
        }
    
    
        @RequestMapping(value = "/deleteById", method = RequestMethod.POST)
        @ApiOperation(value = "删除用户",httpMethod = "POST")
        public Object delUser(@RequestParam(name="userId")int userId){
            return userService.deleteUserById(userId);
        }
    
        @RequestMapping(value = "/updateById", method = RequestMethod.POST)
        @ApiOperation(value = "更新用户",httpMethod = "POST")
        public Object updateUser(@RequestParam(name="userId")int userId, @RequestParam(name="department")String department){
            return userService.updateUserById(userId, department);
        }
    
        @RequestMapping(value = "/add", method = RequestMethod.POST)
        @ApiOperation(value = "新增用户",httpMethod = "POST")
        public Object addUser(@RequestParam(name="userId")int userId, @RequestParam(name="name")String name, @RequestParam(defaultValue="男",name="sex")String sex, @RequestParam(name="department")String department){
            return userService.addUser(userId, name, sex, department);
        }
    }
    

    swagger配置

    package com.uncleyong.testdemo.config;
    
    
    import com.google.common.base.Predicates;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    
    
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
        @Bean
        public Docket api(){
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .pathMapping("/")
                    .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(Predicates.not(PathSelectors.regex("/error.*")))
                    .paths(PathSelectors.regex("/.*"))
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder().title("testdemo项目接口文档")
                    .contact(new Contact("【uncleyong】","",""))
                    .description("这是swaggerui生成的testdemo项目接口文档")
                    .license("项目源码地址").licenseUrl("https://www.cnblogs.com/UncleYong/p/10530261.html")
                    .version("1.0.0.0")
                    .build();
        }
    }

    运行Main文件,启动服务

    生成的swagger接口文档

    浏览器访问接口

      

    项目源码:https://gitee.com/UncleYong/javaMockServer

  • 相关阅读:
    easyUI中textbox或number的数值大小校验
    个人附加作业
    个人最终总结
    结对编程————电梯调度
    visual studio 2013的使用和单元测试
    第三次作业(二)
    团队作业之个人总结篇
    结队编程之总结篇
    电梯调度系统(界面由C图形库编绘)
    软件工程作业单词统计
  • 原文地址:https://www.cnblogs.com/uncleyong/p/10833569.html
Copyright © 2011-2022 走看看