栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM整合swagger以及解决一个url出现全类型接口问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM整合swagger以及解决一个url出现全类型接口问题

文章目录

1. 导入依赖2. 编写swagger配置类3. 下载swagger ui资源4. 配置springMVC.xml文件5.修改url地址6. 全类型接口问题

1. 导入依赖
        
        
            io.springfox
            springfox-swagger2
            2.9.2
        
        
        
            io.springfox
            springfox-swagger-ui
            2.9.2
        
        
2. 编写swagger配置类
@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(documentationType.SWAGGER_2)
                .apiInfo(apiInfo()).select()
                //扫描指定包中的swagger注解
                //.apis(RequestHandlerSelectors.basePackage("cn.exrick.controller"))
                //扫描所有有注解的api,用这种方式更灵活
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("ssm-single Api documentation")
                .description("ssm项目后台API接口文档")
                .termsOfServiceUrl("https://www.baidu.com/")
                .license("1043927441@qq.com")
                .version("1.0.0")
                .build();
    }
}
3. 下载swagger ui资源

https://github.com/swagger-api/swagger-ui/tree/v2.1.5

只需要将dist文件夹复制到webapp目录下,然后重命名为swagger(名字可以随意,作访问路径用)

4. 配置springMVC.xml文件
 
 
 
 
 
5.修改url地址

访问 http://localhost:8080/swagger/index.html 或着 http://localhost:8080/swagger-ui.html,有的可能是 http://localhost:8080/项目名/swagger/index.html,具体要看下图是否配置,我这里没有配置,所以就是访问http://localhost:8080/swagger/index.html

访问之后可能出现如下页面,并没有自己写的接口,这时需要修改url

改成 url = “/v2/api-docs”

再次访问,就出现自己写的接口

6. 全类型接口问题

上图可以看出,对于 /kingo/account/findAll 这个url,有多个请求方法,不符合我们的预期,查看Controller类

@Controller
@RequestMapping("/kingo/account")
@Api(value = "account的操作类", description = "用户类")
public class AccountController {

    @Autowired
    private IAccountService service;

    @RequestMapping(value = "findAll")
//    @RequestMapping(value = "findAll", method = {RequestMethod.GET})
    @ResponseBody
    @ApiOperation(value = "查询所有用户信息", notes = "查询用户", response = List.class)
    public List findAll(){
        return service.list();
    }

    @RequestMapping(value = "findById", method = {RequestMethod.GET})
    @ResponseBody
    @ApiOperation(value = "根据Id查询用户信息", notes = "查询特定用户", response = Account.class)
    public Account findById(@RequestParam("id") String id){
        return service.getById(id);
    }
}
@RequestMapping(value = "findAll") 

这个注解没有指定请求方法,改成

@RequestMapping(value = "findAll", method = {RequestMethod.GET}) 

重新部署项目访问,符合预期

另外,要想看到请求的结果,需要在接口加上@ResponseBody

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727680.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号