• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swagger-doc: swagger-doc解决了springfox用注解污染代码的问题,支持spring boot,采 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

文档

文档(https://gitee.com/largerfish/swagger-doc/wikis/Home)

swagger-doc

重点先说说这个项目解决了什么问题

这个总得来说是给swagger解决了大部分人不想用swagger的问题,springfox的注解污染代码,可以来看看用springfox时候的代码

@GetMapping("/v1/index/banner")@ApiOperation(value = "获取首页Banner", response = BannerJsonDto.class)@ApiResponse(code = 200, message = "success")public ResultUtils.ObjectResult getBanners() {      .....    return ResultUtils.ToObjectResult(bannerJsonDtos);}

如上所示,如果用swagger就会产生这种无用的注解,但是还没法不加 OK 继续来看看swagger-doc同样的代码应该怎么写

/** * 模糊查询功能 * * @param  * @return * @since 1.0 */@GetMapping("/select/like")public ResponseEntity<PageResponse> selectLike(@Valid QueryParam querParam) {     ......    return ResponseEntity.success(pageResponse);}

对比两种使用方式,我想大多数人都会喜欢下面一种方式,因为doc是大部分代码种不可少的东西,我理解的是如果大家在写javadoc的同时顺便把文档也写完了,是不是提高了很好的效率所以就有此项目诞生

###优点缺点对比

项目代码污染学习成本支持springboot功能完善程度
swagger-docjava原生注解即可支持目前功能比较少
springfox污染比较大支持完善

##快速开始

由于本项目还在构建中,所以没有扔到mvncenter,所以先通过mvn install 到本地仓库即可###1.安装到本地仓库

cd swagger-docmvn install 

###2.项目中使用

<repositories>        <repository>            <id>oszrh</id>            <url>https://oss.sonatype.org/content/repositories/snapshots</url>        </repository>    </repositories>     <dependency>    <groupId>com.gitee.largerfish</groupId>    <artifactId>swagger-core</artifactId>    <version>1.1-SNAPSHOT</version></dependency>

###3.spring boot 配置

@EnableSwaggerDocpublic class SampleApplication {    public static void main(String[] args) {        SpringApplication springApplication = new SpringApplication(SampleApplication.class);        springApplication.run(args);    }    @Bean    public FilterRegistrationBean logFilterRegistrationBean() {        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();        filterRegistrationBean.setFilter(new FilterInterceptor());        filterRegistrationBean.setName("logFilterRegistrationBean");        filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));        filterRegistrationBean.setOrder(1);        return filterRegistrationBean;    }    @Bean    public SwaggerDoc swaggerDoc() {        Contact contact = new Contact();        Info info = new Info();        info.setTitle("测试文档");        contact.setEmail("[email protected]");        contact.setName("wk");        contact.setUrl("http://git.oschina.net/wangkang_daydayup/swagger-doc");        info.setDescription("swagger-doc解决了springfox用注解污染代码的问题,采用原生java-doc来实现文档的生成,让代码更加干净,学习成本更低");        info.setContact(contact);        return new SwaggerDoc.SwaggerDocBuilder().addSkipAnnotations(SessionAttribute.class).withDoc("doc")            .withDoc("测试文档").withInfo(info).withHost("139.224.35.224")            .addIgnoreControllers("swaggerController", "basicErrorController").build();    }}

###4. 打包源码

这里是最重要的一点,因为java编译后会把doc擦除,这就是为什么class文件里面很少能看见注释,所以需要利用源码来进行解析,所以需要使用maven插件

 <plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-source-plugin</artifactId>    <version>3.0.1</version>    <executions>        <execution>            <id>attach-sources</id>            <goals>                <goal>jar-no-fork</goal>            </goals>        </execution>    </executions></plugin>

打包时把源码拷贝到source中

#!/usr/bin/env bashmvn clean -U process-resources package -Dmaven.test.skip=truecp target/swagger-doc-demo-1.0-SNAPSHOT.jar  source

###5 搭建swagger-ui下载最新版swagger-ui

https://github.com/swagger-api/swagger-ui

总体来说使用方式很简单,上面的quickstart仅仅只用于单模块项目,也就是说dto跟api在同一个项目里面,多模块复杂项目会在接下俩的文档里面继续讲解

###效果图

###测试链接

http://petstore.swagger.io/?url=http://139.224.35.224:8080/swagger.json


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap