当前位置:首页 > 服务端 > SpringBoot开发mockserver及生成swagger接口文档

SpringBoot开发mockserver及生成swagger接口文档

2022年09月15日 23:20:19服务端10

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

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

项目目录

SpringBoot开发mockserver及生成swagger接口文档 _ JavaClub全栈架构师技术笔记

接口

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

SpringBoot开发mockserver及生成swagger接口文档 _ JavaClub全栈架构师技术笔记

生成的swagger接口文档

SpringBoot开发mockserver及生成swagger接口文档 _ JavaClub全栈架构师技术笔记

浏览器访问接口

SpringBoot开发mockserver及生成swagger接口文档 _ JavaClub全栈架构师技术笔记

  

 

https://gitee.com/uncleyong/javaMockServer

 

作者:全栈测试笔记
来源链接:https://www.cnblogs.com/uncleyong/p/10833569.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/41518.html

标签: Swagger
分享给朋友:

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

SpringBoot整合Swagger3生成接口文档

SpringBoot整合Swagger3生成接口文档

  前后端分离的项目,接口文档的存在十分重要。与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的开发环境下,手动编写文档的效率实在太低。与新版的swagger3相比swagger2配置更少,使用更加方便。 一、pom文件中引入Swagger3依赖...

.net core swagger汉化

.net core swagger汉化

基本swagger使用不再详解,具体百度其它帖子 1.将汉化的swagger js文件复制到项目根目录中 js代码如下 1 'use strict'; 2 3 /** 4 * Translator for documentatio...

替换swagger-ui,选择款神器—knife4j

替换swagger-ui,选择款神器—knife4j

    一、介绍 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案(在非Java项目中也提供了前端UI的增强解决方案),前身是swagger-bootstrap-ui,取名knife4j是希望她能像一把匕首一样小...

使用dropwizard(5)--加入swagger

使用dropwizard(5)--加入swagger

前言 Swagger已经成API service的规范了,本处在dropwizard中简单集成Swagger. Demo source https://github.com/Ryan-Miao/l4dropwizard 本文是基于dropwizard入...

Swagger-UI展示接口

Swagger-UI展示接口

简单介绍API的管理工具Swagger的UI模块。 简介:swagger ui就是一个能整合到项目中让api的注释能够生成到一个网页上。能简单测试和给前端看。 第一步:添加引用 打开NuGet程序包管理器,搜索Swagger。安装搜索出来的这个Swashbuckle。...

配置 Swagger 带 token 访问的两种方式

配置 Swagger 带 token 访问的两种方式

推荐使用全局的方式 1. 每个接口单独传 import com.google.common.collect.Lists; import org.springframework.beans.factory.annotation.Value; impo...

ABP使用NSwagStudio for Swagger Api生成ServiceProxies

ABP使用NSwagStudio for Swagger Api生成ServiceProxies

案例主要是使用NSwag来生成ABP for angular 2+的客户端代码。 NSwagStudio 下载地址 比较强大、可以生成TypeScript、WebApi Controller、CSharp Client  1:运行Web.Host项目&n...

Swagger结合mustache模板生成后台接口代码、以及前后台建模代码

Swagger结合mustache模板生成后台接口代码、以及前后台建模代码

之前项目中使用的的thrift来建模,维护前后台模型以及rest接口,前台使用的是angular2;  但是使用thrift只能生成建模,后台的rest接口的Controller文件还是需要手动去写,一旦接口改动就会涉及到很多方面。 由此准备使用Swagger和m...

Swagger 使用方法

注:本篇文章基于Django-rest-swagger 2.0.7环境下撰写 参考英文文档: http://django-rest-swagger.readthedocs.io/en/latest/ 本文是使用swagger工具结合Django-rest-framew...

swagger.yaml转换为swagger.json文件

swagger.yaml转换为swagger.json文件

swagger-codegen swagger.yaml生成json文件 方法一 swagger-editor页面 官方的 swagger-editor Live Demo (在线直接使用,就是访问的有点慢)或者将swagger-editor Downlo...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。