swagger与springmvc整合一点tips

就在上周公司开发一个新的模块,前后端分离的,所有的前端页面都用异步,就试用swagger 来生成接口文档。

不多说,我直接上代码。至于maven的引用包什么的我就不多提了,很多大神都有写过,网上一搜一大把我就说说具体的配置

@Configuration
@EnableSwagger
public class MySwaggerConfig {

    private SpringSwaggerConfig springSwaggerConfig;

    /**
     * Required to autowire SpringSwaggerConfig
     */
    @Autowired
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
    {
        this.springSwaggerConfig = springSwaggerConfig;
    }

    /**
     * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
     * framework - allowing for multiple swagger groups i.e. same code base
     * multiple swagger resource listings.
     */
    @Bean
    public SwaggerSpringMvcPlugin customImplementation()
    {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
                .apiInfo(apiInfo())
                .includePatterns(".*?");
	//这个地方注意了,配置swagger 包扫描的路径 如 /a/* 那就是访问路径从/a开始的所有接口
	//我在使用的时候 发现swagger 扫描接口的速度比较慢,40几个controller 要等将近5分钟 这里如果限制了扫描路径,明显加快了扫描的速度
    }

    private ApiInfo apiInfo()
    {
        ApiInfo apiInfo = new ApiInfo(
                "My Apps API Title",
                "My Apps API Description",
                "My Apps API terms of service",
                "My Apps API Contact Email",
                "My Apps API Licence Type",
                "My Apps API License URL");
        return apiInfo;
    }
}
这是 SwaggerConfig 的配置 要将这个类 初始化到spring的容器中


下面是一个 简单的例子

@RequestMapping(value="/name/{name}", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "根据用户名获取用户对象", httpMethod = "GET", response = ApiResult.class, notes = "根据用户名获取用户对象")
public User getUserByName(@ApiParam(name = "name", value = "用户名") @requestParam(required = false)String name) throws Exception{
    return userService.getUserByName(name);
}

@ApiMode
public class User{
	@ApiModelParam(value="用户名")
	private String name;
	@ApiModelParam(value="id")
	 private String id;
	getter().....setter()....
}


说一下这些注解是什么意思
@ApiOperation(value = "这是用来说明这个接口是干嘛用的", httpMethod = "这是请求的方法GET/POST", response = User.class//这是返回值的类型
, notes = "这个就好像是一个补充,随便写啦")
@ApiParam(name = "参数的名字", value = "参数的注释(说明)",required = false //这个是标记该参数是否为必带参数 (defult=true)) //这个是注解参数
@requestParam(required = false//这个地方其实意思和上面一样,但是我发现如果要用swagger去测试接口的时候 必带参数只有在这里设置false 才能起效(defult=true))//这是spring-mvc的注解 这里
@ApiMode 注解返回值类
@ApiModelParam(value="用户名")注解返回值类的属性

我可能写得很烂,不过这是我遇到的问题,希望能解决遇到同样问题的朋友的问题。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值