swagger-model不显示

5,715 阅读2分钟

背景

其他注释都显示,model不显示。特别是响应数据的model不显示。

解决方法

响应数据的数据,设置为泛型。控制器也要传入泛型的具体类型。


解决之后,响应数据的model和注释如下

源码

响应数据

package com.wz.bpm.bean;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel
public class RespBean<T> {
    private Integer status=200;
    private String errorCode="";
    private String errorMsg="";
    public String getErrorMsg() {
		return errorMsg;
	}

	public void setErrorMsg(String errorMsg) {
		this.errorMsg = errorMsg;
	}

	public T getResultData() {
		return resultData;
	}

	public void setResultData(T resultData) {
		this.resultData = resultData;
	}

	@ApiModelProperty(value = "结果数据")
	private T resultData;

    private RespBean() {
    }

    public static RespBean build() {
        return new RespBean();
    }

    public static RespBean ok(String errorMsg, Object resultData) {
        return new RespBean(200, errorMsg, resultData);
    }

    /**
     * 
     * @param errorMsg 描述信息
     * @return
     */
    public static RespBean ok(String errorMsg) {
        return new RespBean(200, errorMsg, null);
    }
    /**
     * 描述信息默认是成功
     * @return
     */
    public static RespBean ok() {
        return new RespBean(200, "成功", null);
    }

    public static RespBean error(String errorMsg, Object resultData) {
        return new RespBean(500, errorMsg, resultData);
    }

    /**
     * 
     * @param errorMsg 描述信息
     * @return
     */
    public static RespBean error(String errorMsg) {
        return new RespBean(500, errorMsg, null);
    }
    /**
     * 描述信息默认是失败
     * @return
     */
    public static RespBean error() {
        return new RespBean(500, "失败", null);
    }

    private RespBean(Integer status, String errorMsg, T resultData) {
        this.status = status;
        this.errorMsg = errorMsg;
        this.resultData = resultData;
    }

    public RespBean(int i, T resultData) {
    	this.status = i;
        this.resultData = resultData;
	}

	public Integer getStatus() {

        return status;
    }

    public RespBean setStatus(Integer status) {
        this.status = status;
        return this;
    }

   

    
    /**
     * 服务器响应数据
     * @param i。成功1,失败其他。
     */
    public static RespBean printResult(int i) {
    	if (i==1) {
    		return RespBean.ok();
		} else {
			return RespBean.error();
		}
    }

	public String getErrorCode() {
		return errorCode;
	}

	public void setErrorCode(String errorCode) {
		this.errorCode = errorCode;
	}

	/**
	 * 
	 * @param resultData
	 * @return
	 */
	public static RespBean ok(Object resultData) {
		return new RespBean(200,resultData);
	}
}

控制器

package com.wz.bpm.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.wz.bpm.bean.City;
import com.wz.bpm.bean.Company;
import com.wz.bpm.bean.Department;
import com.wz.bpm.bean.Employee;
import com.wz.bpm.bean.Position;
import com.wz.bpm.bean.RespBean;
import com.wz.bpm.service.CityService;
import com.wz.bpm.service.CompanyService;
import com.wz.bpm.service.DepartmentService;
import com.wz.bpm.service.EmployeeService;
import com.wz.bpm.service.PositionService;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;


@Api(tags = "员工")
@RestController
@RequestMapping("/employee")
public class EmployeeController {
    
    @Autowired
    private EmployeeService employeeService;
    
    @Autowired
    private PositionService positionService;
    
    @Autowired
    private DepartmentService departmentService;
    
    @Autowired
    private CompanyService companyService;
    
    @Autowired
    private CityService cityService;
    
    @ApiOperation("获取分页")
    @RequestMapping(value="/page",method=RequestMethod.GET)
    public RespBean getEmployeesByPage(
    		@RequestParam(defaultValue = "1") Integer page,
            @RequestParam(defaultValue = "10") Integer pageSize,
            @RequestParam(defaultValue = "") String keyword,
            Long companyId, Long departmentId,Long workCityId, Long positionId,Integer workStatus
            ){
    	//获取分页数据
    	List<Employee> employees =  employeeService.getEmployeesByPage(page, pageSize, keyword,companyId, departmentId, workCityId,  positionId, workStatus);
    	Long count = employeeService.getCount();
    	Map<String,Object> map = new HashMap<>();
    	map.put("employees", employees); //分页数据
    	map.put("count", count); //总数量
    	
    	return RespBean.ok(map);
    }
    
    @ApiOperation("新增")
    @RequestMapping(method=RequestMethod.POST)
    public RespBean addEmployee(Employee employee) {
    	int i = employeeService.addEmployee(employee);
    	if (i==1) {
    		return RespBean.ok();
		} else {
			return RespBean.error();
		}
    	 
    }
    
    @ApiOperation("删除")
    @RequestMapping(method=RequestMethod.DELETE)
    public RespBean deleteEmployee(Long id) {
    	int i = employeeService.deleteEmployee(id);
    	return RespBean.printResult(i);
    }
    
    @ApiOperation("查看")
    @RequestMapping(method=RequestMethod.GET)
    public RespBean<Employee> getEmployee(Long id) {
    	Employee employee = employeeService.getEmployee(id);
    	return RespBean.ok(employee);
    }
    
    @ApiOperation("更新")
    @RequestMapping(method=RequestMethod.PUT)
    public RespBean updateEmployee(Employee employee) {
    	int i = employeeService.updateEmployee(employee);
    	return RespBean.printResult(i);
    }
    
    @ApiOperation("获取所有用户")
    @RequestMapping(value="/getAllEmployees",method=RequestMethod.GET)
    public RespBean getAllEmployees(){
    	List<Employee> employees = employeeService.getAllEmployees();
    	return RespBean.ok(employees);
    }
    
    @ApiOperation("根据部门id,获取用户")
    @RequestMapping(value="/getEmployeesByDepId",method=RequestMethod.GET)
    public RespBean getEmployeesByDepId(Long departmentId) {
    	List<Employee> employees = employeeService.getEmployeesByDepId(departmentId);
    	return RespBean.ok(employees);
    }
}

带来的问题

响应数据改为泛型,就可以显示。但是多了很多提示,先不用管。

参考

blog.csdn.net/qq_32917699… //有效