0
点赞
收藏
分享

微信扫一扫

swagger2的使用以及注意事项

夹胡碰 2022-01-04 阅读 60

swagger的使用

依赖

<!-- swagger2-ui-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${swagger2.version}</version>
</dependency>
<!--  swagger2-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${swagger2.version}</version>
    <scope>compile</scope>
</dependency>

swagger配置类

package cn.ant.common.config;

import com.google.common.base.Predicates;

import io.swagger.annotations.ApiOperation;
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 Swagger2Configure {
    @Bean
    public Docket webApiConfig(){

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("默认选项")
                .apiInfo(webApiInfo())
                .select()
                //withMethodAnnotation使用ApiOperation这个注解的接口,才会生成文档
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }


//    默认展示
    private ApiInfo webApiInfo(){

        return new ApiInfoBuilder()
                .title("")
                .description("网站微服务接口定义")
                .version("1.0.0")
                .contact(new Contact("百度一下", "http://baidu.com", "1172114335@qq.com"))
                .build();
    }

}

controller

package cn.ant.uc.controller;

import cn.ant.uc.entity.dto.UserDTO;
import cn.ant.uc.service.UserManagementService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @Version 1.0
 * @Author:lss
 * @Date:2021/11/5
 * @Content:
 */
@Controller
@Slf4j
@RequestMapping("userManagement")
@Api(value = "UserManagementController", tags = "用户管理")
public class UserManagementController {
    @Autowired
    private UserManagementService userManagementService;

    @GetMapping("hello")
    @ResponseBody
    @ApiOperation(value = "测试接口", notes = "测试接口")
    public String hello() {
        return "hello";
    }

    @PostMapping("login")
    @ResponseBody
    @ApiOperation(value = "登录接口", notes = "登录接口")
    public String login(@RequestBody UserDTO userDTO) {
        userManagementService.login(userDTO);
        return "login";
    }

    @PostMapping("getToken")
    @ResponseBody
    @ApiOperation(value = "获取token", notes = "获取token")
    public String getToken(HttpServletRequest request) {
        return userManagementService.getToken(request);
    }


    /**
     * 添加用户
     *
     * @param userDTO
     * @return
     */
    @PostMapping("addUser")
    @ResponseBody
    @ApiOperation(value = "添加用户", notes = "添加用户")
    public Object addUser(@RequestBody UserDTO userDTO) {
        return userManagementService.addUser(userDTO);
    }

    /**
     * 编辑用户
     *
     * @param userDTO
     * @return
     */
    @PostMapping("editUser")
    @ResponseBody
    @ApiOperation(value = "编辑用户", notes = "编辑用户")
    public Object editUser(@RequestBody UserDTO userDTO) {
        return userManagementService.editUser(userDTO);
    }

    /**
     * 分页查询用户
     *
     * @param userDTO
     * @return
     */
    @PostMapping("queryUser")
    @ResponseBody
    @ApiOperation(value = "分页查询", notes = "分页查询")
    public Object queryUser(@RequestBody UserDTO userDTO) {
        return userManagementService.queryUser(userDTO);
    }

    /**
     * 删除用户
     *
     * @param userIdList
     * @return
     */
    @DeleteMapping("deleteUser")
    @ResponseBody
    @ApiOperation(value = "删除用户", notes = "删除用户")
    public Object deleteUser(@RequestBody List<Integer> userIdList) {
        return userManagementService.deleteUser(userIdList);
    }


}

启动项目即可

在这里插入图片描述

注意事项

swagger生成重复的、多余的接口

如下图(下图来源于网络):
在这里插入图片描述

/**
     * 删除用户
     *
     * @param userIdList
     * @return
     */
    @DeleteMapping("deleteUser")
    @ResponseBody
    @ApiOperation(value = "删除用户", tags = "删除用户")
    public Object deleteUser(@RequestBody List<Integer> userIdList) {
        return userManagementService.deleteUser(userIdList);
    }

在swagger中生成的文档如下:

举报

相关推荐

0 条评论