swagger mock文档服务器,SpringBoot开发mockserver及生成swagger接口文档

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

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

项目目录

30a66587fc2252c60f06a668ac072bf7.png

接口

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文件,启动服务

8ad888e06bad4a286b6bb2a52996286b.png

生成的swagger接口文档

52e27fe61e8e0629dd237720a8621895.png

浏览器访问接口

74fb56717c6c46d2d0a50bbf65d3f99c.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值