`
truelove12358
  • 浏览: 77485 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Swagger使用总结

 
阅读更多

1. Swagger是什么?

官方说法:Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

个人觉得,swagger的一个最大的优点是能实时同步api与文档。在项目开发过程中,发生过多次:修改代码但是没有更新文档,前端还是按照老旧的文档进行开发,在联调过程中才发现问题的情况(当然依据开闭原则,对接口的修改是不允许的,但是在项目不稳定阶段,这种情况很难避免)。

2. spring boot 集成 Swagger

目前维护的系统是基于springboot框架开发的,因此本文会详细描述springboot与swagger集成的过程。

spring-boot系统集成swagger需要进行如下操作:

  1. 添加maven依赖,需要在系统的pom中添加如下依赖:

     <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.2.2</version>
     </dependency>
    
  2. 添加swagger配置文件,配置文件如下:

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
        @Bean
        public Docket api() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .select()  // 选择那些路径和api会生成document
                    .apis(RequestHandlerSelectors.any()) // 对所有api进行监控
                    .paths(PathSelectors.any()) // 对所有路径进行监控
                    .build();
        }
    
    }

    通过注解EnableSwagger2声明Swagger的可用性,此处会定义一个类型为Docket的bean,
    关于docket类的说明如下:

    A builder which is intended to be the primary interface into the swagger-springmvc framework.Provides sensible defaults and convenience methods for configuration.

    Docket的select()方法会提供给swagger-springmvc framework的一个默认构造器(ApiSelectorBuilder),这个构造器为配置swagger提供了一系列的默认属性和便利方法。

  3. 测试

    通过访问:http://localhost:8080/your-app-root/v2/api-docs,能测试生成的api是否可用。此时返回的是一个json形式的页面,可读性不好。可以通过Swagger UI来生成一个可读性良好的api页面。具体做法就是,在pom中添加相关依赖。如下:

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

    再次访问:http://localhost:8080/your-app-root/swagger-ui.html就可以看到可读性较好的api文档页面。

  4. 注意:

    1. http://localhost:8080/your-app-root/v2/api-docsyour-app-root指的你的wabapp的根路径,我目前的webapp就默认在根路径下,所以地址是:http://localhost:8080/v2/api-docs
    2. spring-mvc上引用swagger需要做其他相关的配置,具体请查看参考文献
    3. swagger对restful风格的api支持的比较好,非restful风格的api支持的不是很好,对于非restful风格的api或者其他语言(非java语言)可以采用http://editor.swagger编辑器来收工完成相关的API编写

参考文献

  1. swagger-2-documentation-for-spring-rest-api
分享到:
评论

相关推荐

    swagger小白学习总结

    在使用 Swagger 时,可能会遇到一些问题,例如集成风险、文档更新不及时等。解决方案是定义 schema,实时跟踪最新的 API,降低集成风险。 Swagger 是一个功能强大且流行的 API 框架,用于生成 API 文档和在线测试 ...

    SpringBoot集成Swagger简单使用

    总结来说,SpringBoot集成Swagger的步骤包括:引入相关依赖,创建Swagger配置类,编写API注解,通过Swagger UI访问和测试API。这个过程使得API的文档化和测试工作变得简单且高效,极大地提高了开发效率和API的可维护...

    swagger开启身份认证

    ### swagger开启身份认证 ...虽然这里主要介绍了如何使用Swagger Bootstrap UI来实现这一目标,但在实际项目中,还可以考虑其他方法和技术栈来满足不同的需求。无论采用哪种方式,关键是要确保API的安全性得到保障。

    Asp.Net Core使用swagger生成api文档的完整步骤

    本篇文章将详细讲解如何在Asp.Net Core项目中使用NSwag(包括Swashbuckle)来实现Swagger的集成。 **前言** Asp.Net Core提供了两种与NSwag相关的包,分别是Swashbuckle和NSwag。虽然两者有相似之处,但本教程将以...

    swagger-UI使用之app服务器

    总结,Swagger UI 是一个强大的工具,为app服务器的API开发和测试提供了便利。通过正确集成和使用,它可以显著提升开发效率,同时提高API的可理解和可用性。无论你是新手还是经验丰富的开发者,掌握Swagger UI的使用...

    swagger所有相关jar包

    Swagger是一个流行的API开发...总结来说,Swagger和Springfox提供了一套完整的解决方案,帮助开发者高效地设计、文档化和测试RESTful API,提升开发效率和API的质量。无论你是API的提供者还是消费者,都能从中受益。

    Swagger接口导出Word.rar

    总结,本教程介绍了如何在C# .NET环境中利用Swagger生成API文档,并将其导出为Word格式。这包括安装Swagger,设置Swagger UI,创建用于导出Word的控制器,以及处理JSON到Word的转换。请注意,具体的JSON到Word转换...

    springBoot整合Swagger项目例子

    总结一下,SpringBoot整合Swagger的主要步骤包括: 1. 添加Swagger相关依赖。 2. 配置Swagger2Config,指定API信息和扫描的包路径。 3. 在Controller方法上添加Swagger注解,描述接口功能和参数。 4. 使用Swagger ...

    SpringBoot1使用Swagger2例子

    Swagger2则是一款强大的API文档生成工具,它可以自动生成、测试和维护RESTful API文档,使得开发者能够更方便地理解、使用和维护接口。本篇文章将深入探讨如何在SpringBoot项目中集成Swagger2,创建直观易用的API...

    ssm与swagger2的整合

    总结来说,本项目展示了如何在SSM项目中集成Swagger2,以提高接口管理和测试的效率。通过使用Swagger2,开发者能够轻松地生成API文档,同时提供了一个友好的界面来测试和验证接口的功能,极大地提升了开发效率和协作...

    Swagger3生成API文档配置(Demo)

    总结,Swagger3是Spring Boot项目中用于生成API文档的强大工具,通过注解和配置,我们可以轻松地创建和管理RESTful API的文档。通过运行应用,我们可以利用Swagger UI进行接口的测试和调试,极大地提高了开发效率和...

    Go-go-swagger用go语言实现Swagger2.0

    总结来说,Go-swagger是Go语言环境下实现Swagger 2.0规范的重要工具,它简化了RESTful API的开发流程,提供了代码生成、验证、文档化和测试等功能,有助于提高开发效率和API质量。对于任何使用Go进行API开发的项目,...

    p12swagger+freemarker.pdf

    总结来说,Swagger 提供了一种标准化的方法来管理和文档化 RESTful API,而 Freemarker 是一个强大的模板引擎,两者在不同的层面服务于软件开发。在实际应用中,它们各自发挥着作用,提高开发效率和用户体验。

    springboot-swagger-demo202010221424.zip

    总结来说,"springboot-swagger-demo202010221424.zip"示例展示了SpringBoot项目中如何集成Swagger,通过简单的配置和注解,实现API文档的自动化生成和管理。这种方式不仅提高了开发效率,也让API的使用者能够更方便...

    jmeter接口自动化测试插件swagger转jmeter脚本.zip

    总结,Swagger转JMeter脚本不仅简化了接口自动化测试的前期准备,而且提高了测试的可维护性和复用性。结合JMeter的强大功能,我们可以对API进行全面、高效的性能和功能测试,确保系统的稳定运行。通过熟练掌握这个...

    swagger springmvc集成jar

    总结,Swagger与Spring MVC的集成使得API的开发变得更加高效和便捷。通过注解,你可以清晰地定义API的行为,并提供一个直观的用户界面供开发者和消费者使用。在实际开发中,确保正确配置和使用Swagger,能提高API的...

    Swagger API接口创建

    Swagger的核心价值在于其提供了一个标准化且语言无关的接口,使得无论是人还是计算机都可以无需查看源代码或文档,甚至不必通过网络流量检测,就能理解和使用各种服务的功能。 #### Swagger简介 Swagger的目标是为...

    Swagger和knife4j_swagger_Swagger和knife4j_knife4jswagger_

    总结来说,Swagger 和 Knife4j 是为了提高 RESTful API 的开发、文档编写和测试效率的有力工具。Swagger 通过 OpenAPI 规范标准化了 API 描述,而 Knife4j 则在 Swagger 的基础上增加了更多实用的功能,使开发者在 ...

    swagger-demo.rar

    总结来说,Swagger是通过一套规范化的JSON格式来描述RESTful API的工具,它与Spring Boot的结合使得API文档的编写和测试变得更加便捷。在项目中引入Swagger,可以提高开发效率,同时提供清晰的API文档,便于团队协作...

    springboot集成swagger的demo

    总结一下,SpringBoot集成Swagger的主要步骤包括: 1. 添加Swagger相关依赖。 2. 在主配置类上启用Swagger。 3. 使用Swagger注解描述接口和参数。 4. 可选地,自定义Swagger配置。 通过这些步骤,我们可以快速地为...

Global site tag (gtag.js) - Google Analytics