swagger

Swagger学习总结

天大地大妈咪最大 提交于 2019-12-28 23:44:52
Swagger包含哪些东西? Swagger Tools Swagger Editor 编辑器,可以实时生成API文档预览,并提供API接口测试。它包含了大部分Swagger的可用功能,比如生成实时文档,生成项目代码,API测试等等。 Swagger Codegen 代码生成器。根据定义好的YAML文档生成不同语言的项目代码。 Swagger UI API文档预览。 Swagger Inspector API测试。 Swagger Hub 收费,一整套API开发、管理、协作、测试的解决方案。 集成 Swagger Tools里面的功能都是由更小的“组件”拼接而成的,我们可以按需把这些组件集成到实际项目中去。 (TypeScript) NSwag (.NET) Swashbuckle (.NET CORE) Swashbuckle.AspNetCore ,它主要包含2个部分 Swagger:基础库,提供基础功能 SwaggerGen:生成类,可做很多自定义的文档输出。 SwaggerUI:UI类,提供默认UI以及各种UI扩展。 Cli:目前是beta版。可以实时从当前application得到swagger json文件并用于集成。 比较实用的例子 版本控制:[ApiExplorerSettings(GroupName = "v2")] Scheme别名: services

swagger学习

主宰稳场 提交于 2019-12-28 23:44:30
今天接触了swagger,不得不为它惊奇,后端接口编写测试更加的动态化,更加的满足后端人员的需求。 转;http://www.cnblogs.com/JoiT/p/6378086.html 关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。 Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。 Swagger 文件可以在许多不同的平台上从代码注释中自动生成。 Swagger 有一个强大的社区,里面有许多强悍的贡献者。 Swagger 文档提供了一个方法,使我们可以用指定的 JSON 或者 YAML 摘要来描述你的 API,包括了比如 names、order 等 API 信息。 你可以通过一个文本编辑器来编辑 Swagger 文件,或者你也可以从你的代码注释中自动生成。各种工具都可以使用 Swagger 文件来生成互动的 API 文档。 注意:用 Swagger 文件生成互动的 API 文档是最精简的,它展示了资源、参数、请求、响应。但是它不会提供你的API如何工作的其他任何一个细节。 Petstore 的 Swagger 例子 为了更好的理解 Swagger ,我们现在来探索一下 Petsotre 项目的例子。记住

SpringBoot整合swagger

只愿长相守 提交于 2019-12-28 19:44:32
Swagger使用 Swagger有什么用? swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础, 对整个API的开发周期都提供了相应的解决方案,是一个非常庞大的项目(包括设计、编码和测试,几乎支持所有语言)。 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 总体目标是使客户端和文件系统作为服务器以同样的速度来更新。 文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。 springfox大致原理: springfox的大致原理就是,在项目启动的过种中,spring上下文在初始化的过程, 框架自动跟据配置加载一些swagger相关的bean到当前的上下文中,并自动扫描系统中可能需要生成api文档那些类, 并生成相应的信息缓存起来。如果项目MVC控制层用的是springMvc那么会自动扫描所有Controller类,并生成对应的文档描述数据. 该数据是json格式,通过路径:项目地址/ v2/api-docs可以访问到该数据,然后swaggerUI根据这份数据生成相应的文档描述界面。 因为我们能拿到这份数据,所以我们也可以生成自己的页面. SpringBoot

springboot整合生成swagger文档

邮差的信 提交于 2019-12-28 19:44:21
开始构建: 一、 先来看看我的项目目录结构,重点是Controller和config包。其中config是我放自己的配置类文件的地方,也就是在这里创建swagger2的配置。 二、开始配置前需要引入pom依赖,这里是2.6.1,如果需要其他版本请自己去 maven Repostory官网去找。 <!--swagger--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version></dependency><!--swagger ui--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version></dependency> 三、配置文件,springboot采用@Configuration+@Bean的方式来代替原来spring xml的配置。 @Configuration@EnableSwagger2public class swaggerConfig { @Bean public Docket createRestApi() { return

SpringBoot-Swagger整合zuul智能列表

时光怂恿深爱的人放手 提交于 2019-12-28 17:45:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SpringBoot-Swagger整合zuul智能列表 简介 可能大家都有用过 swagger ,可以通过 ui 页面显示接口信息,快速和前端进行联调。 现在基本都是多模块微服务化,每个服务都有这样的ui页面也是很不方便, swagger 也可以聚合在网关页面。 有开发过微服务的小伙伴应该体验过。当微服务模块多的情况下,每个模块都需要配置这样的一个类进行加载 swagger 。造成每个模块都存在大致一样的 SwaggerConfig ,极端的情况下,有些朋友复制其他模块的 SwaggerConfig 进行改造之后,发现仍然加载不出 swagger 的情况,造成明明是复制的,为何还加载不出,排查此bug极其费时间。 在此之上,可以构建出一个 swagger-starter 模块,只需要引用一个 jar ,加载一些特殊的配置,就可以快速地使用到 swagger 的部分功能了。 功能使用 添加依赖 ps: 实际version版本请使用最新版 最新版本: 点击查看最新新版本 <dependency> <groupId>com.purgeteam</groupId> <artifactId>swagger-spring-boot-starter<factId> <version>0.1.2.RELEASE<

Swagger: wildcard path parameters

本小妞迷上赌 提交于 2019-12-28 14:41:49
问题 I have an API which allows any arbitrary path to be passed in, for example all of these: /api/tags /api/tags/foo /api/tags/foo/bar/baz Are valid paths. I tried to describe it as follows: /tags{tag_path}: get: parameters: - name: tag_path in: path required: true type: string default: "/" However, https://generator.swagger.io encodes slashes in the path, so it doesn't work. So is there a way to describe my API in Swagger? 回答1: So this is not going to be supported soon (it's not even planned for

How to document dynamic query parameter names in OpenAPI (Swagger)?

家住魔仙堡 提交于 2019-12-28 04:26:19
问题 Is there any way to document the following query? GET api/v1/users?name1=value1&name2=value where the query parameter names are dynamic and will be received from the client. I'm using the latest Swagger API. 回答1: Free-form query parameters can be described using OpenAPI 3.0, but not OpenAPI 2.0 (Swagger 2.0). The parameter should have type: object with the serialization method style: form and explode: true . The object will serialized as ?prop1=value1&prop2=value2&... , where individual prop

在.NetCore2.0中使用Swagger

坚强是说给别人听的谎言 提交于 2019-12-27 10:44:39
一、新建.netCore webapi项目 二、安装swagger ,通过 Package Manager 控制台:Install-Package SwashBuckle.AspNetCore -Pre 三、修改Startup.cs using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Swashbuckle.AspNetCore.Swagger; using Microsoft.Extensions.PlatformAbstractions; using System.IO; namespace CoreApi { public class Startup {

筛选自动化测试用例的技巧

大城市里の小女人 提交于 2019-12-27 10:11:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 与手动测试相比,软件测试自动化具有许多优势。它改善了结果和质量,提高了可靠性,并减少了结果偏差。此外,它还可以加快流程,增加覆盖率测试并最终提高软件的整体质量。良好的自动化可以提高交付质量,增加测试范围,降低测试成本,并在进行了正确测试后能够尽早发现错误。 测试自动化中的主要问题之一是选择要自动化的测试用例。但是,有人怎么知道所有测试用例将被自动化呢? 本文紧接上期: 自动化如何选择用例 内容,让我们看看其他一些有关如何选择要自动化的测试用例的技巧和规则。 重复测试 这是黄金法则。如果测试运行是重复的,则应使其自动化。这样可以节省您宝贵的时间和精力。另外,如果这是您假设将来会经常运行的测试,那么自动化是一个很好的办法。每次将更快获得更准确的结果。 高难度测试用例 如果一个测试用例人为执行过程中发生错误和被破坏的风险很大,或者手动测试很难完成,则应该优先使用自动化测试。如果涉及的风险很高,则应使该测试用例自动化。 主流程用例 自动化应用程序的主流程用例是一个非常不错的实践。避免人为错误的任何可能性,并且要安全、快速。对于可能危害整个项目的测试用例更应该优先进行自动化测试。 广泛的用例 需要进行大量数据和条件测试的场景更适合自动化测试。另外,在手动测试过程中犯错的机会可能会增多

Swagger配置使用

坚强是说给别人听的谎言 提交于 2019-12-27 09:36:04
依赖: <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> 配置: @EnableSwagger2 @Configuration public class MySwaggerConfiguration { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo())