Swagger学习和实践
最近安装并使用了一下Swagger-ui、Swagger-editor和Swagger-codegen,感觉还不错。
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger的目标是对REST API定义一个标准的和语言无关的接口,可让人和计算机无需访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过Swagger进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger消除了调用服务时可能会有的猜测。
Swagger是一组开源项目,其中主要要项目如下:
- Swagger-tools:提供各种与Swagger进行集成和交互的工具。例如模式检验、Swagger 1.2文档转换成Swagger 2.0文档等功能。
- Swagger-core: 用于Java/Scala的的Swagger实现。与JAX-RS(Jersey、Resteasy、CXF...)、Servlets和Play框架进行集成。
- Swagger-js: 用于JavaScript的Swagger实现。
- Swagger-node-express: Swagger模块,用于node.js的Express web应用框架。
-
Swagger-ui:一个无依赖的HTML、JS和CSS集合,可以为Swagger兼容API动态生成优雅文档。
-
Swagger-codegen:一个模板驱动引擎,通过分析用户Swagger资源声明以各种语言生成客户端代码。
C:\tools\swagger-codegen>mvn package C:\tools\swagger-codegen\modules\swagger-codegen-cli>mvn package C:\tools\swagger-codegen\modules\swagger-generator>mvn package C:\tools\swagger-codegen>java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i http://petstore.swagger.io/v2/swagger.json -l spring-mvc -o yqu/petstore/spring-mvc C:\tools\swagger-codegen\yqu\petstore\spring-mvc>mvn package
-
Swagger-editor:可让使用者在浏览器里以YAML格式编辑Swagger API规范并实时预览文档。可以生成有效的Swagger JSON描述,并用于所有Swagger工具(代码生成、文档等等)中。
除了Swagger项目自身支持的Java、Scala和JavaScript语言,Swagger社区中还提供了很多支持其他语言的第三方工具,覆盖了Clojure、ColdFusion / CFML、Eiffel、Go、Groovy、.Net、Perl、PHP、Python、Ruby等各种编程语言。
Swagger总结
Swagger这类API文档工具可以满足下列需求:
- 支持API自动生成同步的在线文档
- 这些文档可用于项目内部API审核
- 方便测试人员了解API
- 这些文档可作为客户产品文档的一部分进行发布
- 支持API规范生成代码,生成的客户端和服务器端骨架代码可以加速开发和测试速度
跟下列其他API文档工具相比,Swagger各有优缺点,但它功能最多、也是最流行的。
- RESTful API Modeling Language (RAML)
- apiary的API Blueprint
- I/O Docs
- Web Application Description Language (WADL)
参考
相关推荐
现在多数的项目开发中,网站和移动端都需要进行数据交互和对接,这少不了使用REST编写API接口这种场景。例如有些团队,移动端交由了另一团队开发,不同开发小组之间就需要以规范和文档作为标准和协作基础。良好的...
Swagger 让部署管理和使用功能强大的API从未如此简单。 一、使用介绍 什么是 Swagger? Swagger™的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络...
RAFT使用多个并行的模糊测试器,可以轻松进行REST API的模糊测试。 使用嵌入到CI / CD管道中的单个命令行,开发人员可以针对其服务启动模糊测试作业。 RAFT当前支持以下Swagger / OpenAPI工具 工具 描述 RAFT与此...
对于具有OpenAPI / Swagger规范的给定云服务,RESTler会分析其整个规范,然后生成并执行通过其REST API对该服务进行测试的测试。 RESTler智能地从Swagger规范中推断出请求类型之间的生产者-消费者依赖关系。 在...
Meqa使用YAML中的OpenAPI(以前称为Swagger)规范生成并运行测试套件。 通过生成有用的测试模式,REST API的测试变得很容易-无需编码。 演示版 强调 了解对象关系并生成使用正确对象和值的测试。 使用OpenAPI规范中...
此服务旨在轻松浏览和测试(fka Swagger规范)中描述的REST API。 该服务主要使用组件。 它还提供了一个简单的用于代理目的的nodeJS后端。 实际操作: 安装 克隆该项目,然后使用npm install或yarn安装依赖项: ...
产品特点使用修饰符描述端点和中间件(感谢) 轻松地自动创建OpenAPI v3(swagger)文件(基于使用的装饰器-感谢 ) 开玩笑地进行代码覆盖(文本摘要和HTML) 设置单元和集成测试,还可以针对已编译的JS服务器运行...
带弹簧启动的REST API描述该存储...软件和自动化应用Maven 2.4.0和Swagger API工具类Java版本JDK-11集成开发环境IntelliJ IDEA数据库使用H2Databse,MySQL等客户休息邮递员,失眠,Talend API测试器等用法$ git clone ...
Node API已准备好在Node,Express和MongoDB中进行生产并且是开源项目 文献资料 Swagger文档 支持 该应用程序托管在Heroku上,并处理一堆AJAX请求,以提供和操作数据库中的数据,并提供对测试前端应用程序的支持 伺服...
该项目的目标是使用Swagger和Postman创建API并学习测试API。 该项目应使用干净代码的原则,并使用存储库,服务和泛型。 此外,该项目还使用xUnit测试方法进行了测试。 二手图书馆 自动贴图 流利的断言 单位 xunit....
用于社交网络的Rest API REST API基于Django的简单社交网络该应用程序的目的是提供用于服务社交网络活动的REST API端点。 端点的描述可以在SwaggerUI / Redoc中找到。 API参考部分中提供的链接可用于演示/测试应用...
本文档的目标读者是正在集成应用程序以使用和使用Snap NOA提供的服务的应用程序开发人员。整合该服务可在以下两种环境中使用:测试(非生产)生产每个环境都需要一个API密钥供您充当客户端。每个环境具有不同的主机/...
验证请求参数使用和日志Swagger文档的API。 在文件更改时自动重新启动应用程序ESLint,用于识别和报告ECMAScript / JavaScript代码中的模式。 更漂亮的代码格式化程序使用Mocha和Chai的测试用例使用覆盖率报告使用...
RESTful-Web-API-带有Node.js-12的设计 带有Node.js 12的RESTful Web API... 然后,您将使用自动化测试来创建和测试Node.js模块,使用MongoDB来存储数据,并使用自描述URL进行掌握。 您还将使用OpenAPI(Swagger)来
KaiZen编辑器是的核心组件,它是基于Eclipse构建的API建模,文档,可视化,测试和代码生成的全面解决方案。 我们欢迎您的建议和贡献! Eclipse安装程序 可以在上使用KaiZen OpenAPI Editor。 将此按钮拖放到...
添加描述此RestApi的Swagger Api库。 添加购买物品的可能性。 为每个项目添加价格和数量。 添加一个可能性以获取折扣。 购买商品后,将其添加到购物历史记录中。 使用服务和存储库体系结构。 使用数据库存储...
支持MongoDB描述该框架将帮助您使用TypeScript 3构建自己的Node.js Express Mongodb API。项目介绍suppot ES6 / ES7功能使用tslint遵循产品特点认证方式: jwt认证会话存储: MongoDB整合测试摩卡咖啡柴超级测试要求...
输入AutoRest是使用格式描述REST API的。 支援政策 AutoRest是一个开源工具-如果您需要帮助,请先查看文档。 如果您发现错误或需要帮助,请随时提交 使用AutoRest入门 查看我们的,以查找常规信息和特定于语言生成...
OpenAPI规范(OAS)为REST API定义了标准的,与编程语言无关的接口描述,使人和计算机都可以发现和理解服务的功能,而无需访问源代码,附加文档或检查网络流量。 通过OpenAPI正确定义后,使用者可以使用最少的实现...
在使用异步API的项目中,无论您是手动测试新功能,调试还是试图了解某些流程,您经常会发现自己需要手动向某些主题发送消息。 这要求: 实例化负载对象 序列化您的有效负载对象 通过CLI或其他接口发布。 ...