通过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

SpringBoot开发mockserver及生成swagger接口文档的更多相关文章

  1. springboot项目利用Swagger2生成在线接口文档

    Swagger简介. Swagger2是一款restful接口文档在线生成和在线调试工具.很多项目团队利用Swagger自动生成接口文档,保证接口文档和代码同步更新.在线调试.简单地说,你可以利用这个 ...

  2. .Net Core---- WebApi生成Swagger接口文档

    1. Swagger是什么? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件 ...

  3. spring boot使用swagger生成api接口文档

    前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot ...

  4. springboot+swagger接口文档企业实践(下)

    目录 1.引言 2. swagger接口过滤 2.1 按包过滤(package) 2.2 按类注解过滤 2.3 按方法注解过滤 2.4 按分组过滤 2.4.1 定义注解ApiVersion 2.4.2 ...

  5. springboot+swagger接口文档企业实践(上)

    目录 1.引言 2.swagger简介 2.1 swagger 介绍 2.2 springfox.swagger与springboot 3. 使用springboot+swagger构建接口文档 3. ...

  6. Springboot系列(七) 集成接口文档swagger,使用,测试

    Springboot 配置接口文档swagger 往期推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配 ...

  7. Swagger+Spring mvc生成Restful接口文档

    简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...

  8. Spring MVC学习总结(9)——Spring MVC整合swagger自动生成api接口文档

    Swagger 号称:世界最流行的API框架,官网:http://swagger.io/,Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总 ...

  9. Swagger 接口文档规范

    导语: 相信无论是前端还是后端开发,都或多或少地被接口文档折磨过.前端经常抱怨后端给的接口文档与实际情况不一致.后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新.其实无论是前端调用后端,还是 ...

随机推荐

  1. TJOI 2015 概率论(生成函数)

    题意 ​ 求一棵随机生成的有根二叉树(节点无标号,各种不同构的情况随机出现)叶子结点个数的期望. 思路 ​ 用生成函数做是个好题. ​ 我们考虑设 \(n\) 个节点,所有不同构二叉树叶子结点的总和为 ...

  2. 解密httpclient,dbcp,jedis,c3p0,druid,okhttp都在使用的连接池技术

    最近在连接池上面栽了个跟头(参见这里),引起我对池技术的强烈关注,这几天总结了一下很多场景都会使用的池技术: 池概念 pool,中文翻译为水池,但是在英文中,还有一种解释是 an organizati ...

  3. CentOS7 Hive 安装

    hive的安装模式有2种,一种是使用自带的derby数据库,另一种是使用mysql作为元数据库.derby方式一般没人用,因为它是单用户模式.这里主要讲解mysql方式. hive仅仅是一个客户端工具 ...

  4. Python 中 如何将两个列表元素一一对应成字典

    使用python的 zip函数 和强大的集合操作可以方便的将两个list元素一一对应转换为dict,如下示例代码: names = ['n1','n2','n3'] values = [1,2,3] ...

  5. myeclipse配置springmvc教程

    之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希望能帮助到那些有需要的朋友.我是用的是MyE ...

  6. 认识MicroBit

    MicroBit是BBC(英国广播公司),为孩子们推出一款开发板,或者叫控制板,可以简单地理解为通过这块电子板,可以控制接在其外围的电子模板,可以读入数据,也可以输出数据,模拟的或数字的数据.这样一来 ...

  7. 百度前端技术学院task1.10

    任务十:Flexbox 布局练习 面向人群: 有一定HTML及CSS基础的同学 难度: 中 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容 ...

  8. Neo4j 第八篇:投射和过滤

    投射子句用于定义如何返回数据集,并可以对返回的表达式设置别名,而过滤子句用于对查询的结果集按照条件进行过滤 一,Return子句 使用return子句返回节点,关系和关系. 1,返回节点 MATCH ...

  9. ASP.NET Core Caching简介

    在.NET Core中提供了Caching的组件.目前Caching组件提供了三种存储方式: Memory Redis SQLSever 1.Memeor Caching 新建一个ASP.NET Co ...

  10. open live writer安装以及代码高亮、折叠插件安装

    一.目的 方便在本地写博客,不用在浏览器上写. 二.open live writer的安装 下载open live writer 这是我的 链接:https://pan.baidu.com/s/1u8 ...