JAVA-springboot 集成 swagger2

springboot 集成 swagger2

在根目录下新建swagger目录,并新建swagger2类,将java代码复制过去,并修改包要扫描的路径与个人信息
在这里插入图片描述

pom

		<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

配置类

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;

//swagger2的配置文件,在项目的启动类的同级文件建立
@Configuration
@EnableSwagger2
//是否开启swagger,正式环境一般是需要关闭的(避免不必要的漏洞暴露!),可根据springboot的多环境配置进行设置
//@ConditionalOnProperty(name = "swagger.enable",  havingValue = "true")
public class Swagger2 {

    //这里写要扫描的api接口的包的路径 
    public static final String SWAGGER_SCAN_BASE_PACKAGE = "com.cnooc.dictionary.controller";
    //这里写版本号
    public static final String VERSION = "1.0.0";
    // 创建人信息 名称
    public static final String PERSON = "Mr.Z";
    // 创建人信息 链接
    public static final String URL = "http://www.baidu.com";
    // 创建人信息 邮箱
    public static final String EMAIL = "haha@qq.com";
    // 此文档的描述
    public static final String DESCRIPTION = "API 描述";

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 为当前包路径
                .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE)).paths(PathSelectors.any())
                .build();
    }
    // 构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 页面标题
                .title("专业词典RESTful API")
                // 创建人信息
                .contact(new Contact(PERSON,  URL,  EMAIL))
                // 版本号
                .version(VERSION)
                // 描述
                .description(DESCRIPTION)
                .build();
    }
}

VO类
实体类只和数据库交互,不需要加,只加与前端交互的类即可

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

@ApiModel("用户模型")
public class User{
	@ApiModelProperty(value = "用户名称", name = "userName", example = "zzz")
    private String userName;
	@ApiModelProperty(value = "年龄", name = "age", example = "1")
    private int age;
}

接口方法

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

@RestController
@RequestMapping("/adminApi")
@Api(tags = "管理员类接口")
public class AdminController {
	
	//传多个参数
	@GetMapping(value = "/getAllEntry")
    @ApiImplicitParams({
            @ApiImplicitParam(name="page",value="当前页码",required=true,paramType="query",dataType = "int",example = "1"),
            @ApiImplicitParam(name="size",value="每页个数",required=true,paramType="query",dataType = "int",example = "10"),
            @ApiImplicitParam(name="approveState",value="词条状态",required=true,paramType="query",dataType = "int",example = "0")
    })
    @ResponseBody
    @ApiOperation(value = "管理员-分页查询词条",notes = "approveState[1,2],1是待审批,2是审批通过")
    public Result getAllApprovedEntry(int page, int size, int approveState){

        PageHelper.startPage(page,size,"id desc");
        List<DictionaryEntry> list = dictionaryEntryService.findEntryByApproveState(approveState);

        return list.size()>0?Result.success("查询成功",list):Result.success("查询到0条",list);
    }
    
    //传单个参数
	@GetMapping(value = "/findEntryByClassify")
    @ApiOperation(value = "共用-根据分类查询所有词条",notes = "根据分类查询所有词条")
    @ApiImplicitParam(name = "entryClassify",value = "词条分类",paramType = "query",required = true,dataType = "int",example = "1")
    @ResponseBody
    public Result findEntryByClassify(int entryClassify){
        List<DictionaryEntry> list = dictionaryEntryService.findEntryByClassify(entryClassify);

        return list.size()>0?Result.success("根据分类查询词条成功",list):Result.success("根据分类查询到0条词条",0);
    }
    
    //传对象
	@PutMapping("/addEntry")
    @ResponseBody
    @ApiOperation(value = "共用-新增词条",notes = "approveState(0草稿,1待审批,2审批通过)")
    public Result addEntry(@ApiParam(name = "entryInsertBean",value = "新增词条模型",required = true) @RequestBody EntryInsertBean entryInsertBean){

        if(entryInsertBean == null){
            throw new IllegalArgumentException("entryInsertBean must not be null");
        }
        DictionaryEntry dictionaryEntry = new DictionaryEntry();

        dictionaryEntry.setEntryName(entryInsertBean.getEntryName());
        dictionaryEntry.setEntryContentCh(entryInsertBean.getEntryContentCh());
        dictionaryEntry.setEntryContentEn(entryInsertBean.getEntryContentEn());
        dictionaryEntry.setEntryForshortEn(entryInsertBean.getEntryForshortEn());
        dictionaryEntry.setEntryCreatorId(entryInsertBean.getEntryCreatorId());
        dictionaryEntry.setEntryCreatorAccount(entryInsertBean.getEntryCreatorAccount());
        dictionaryEntry.setEntryClassify(entryInsertBean.getEntryClassify());
        dictionaryEntry.setApproveState(entryInsertBean.getApproveState());
        dictionaryEntry.setEntryRemark(entryInsertBean.getEntryRemark());

        //新增的时候设置当前系统时间
        dictionaryEntry.setCreateTime(new Date());
        dictionaryEntry.setModifyTimes(0);
        int i = dictionaryEntryService.addDictionaryEntry(dictionaryEntry);
        if(i > 0){
            return Result.success("新增词条成功",null);
        }
        return Result.error(0,"新增词条失败",dictionaryEntry);
    }
}




























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值