SpringBoot開發mockserver及生成swagger接口文檔

經過springboot開發mock server,包含get及post接口,用於練習接口自動化及jmeter很方便html

固然,也爲後面jenkins持續集成作基礎(開發push代碼後  → jenkins自動構建  → 打包  → 重啓服務器  → 自動執行自動化測試腳本  → 生成測試報告  → 發送郵件)java

項目目錄git

接口web

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);
}

實現spring

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);
    }
}

controllerapi

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

生成的swagger接口文檔服務器

瀏覽器訪問接口app

 

  

項目源碼:https://gitee.com/UncleYong/javaMockServer

相關文章
相關標籤/搜索