AutoRest - 具有C#和Razor模板的Swagger规范代码生成器

简介

AutoRest工具生成用于访问 RESTful Web 服务的客户端库。AutoRest是使用OpenAPI 规范格式描述 REST API 的规范。

AutoRest 是一个提供代码生成框架的工具,用于将 OpenAPI 2.0 和 3.0 规范转换为客户端库,用于这些规范所描述的服务。它是在 OpenAPI Initiative 形成时由 Microsoft 开发的,以便 Azure 服务团队可以开始根据新的 Swagger 和 OpenAPI 2.0 规范生成生成的客户端库。AutoRest 创建了一些扩展来增强 swagger 功能(由于 OpenAPI2 的缺点而创建了很多)。.

AutoRest 的核心是一个灵活的管道,其中一系列预先配置的阶段转换和合并各种 OpenAPI 输入文件,以生成可由特定语言代码生成器使用的“代码模型”。这些代码生成器扩展将解释代码模型并生成符合每种语言的设计指南的代码。为一种语言生成的代码将使用相应的 Azure Core 实现,以便我们可以为生成的代码中如何发出 HTTP 请求提供可配置的行为。

AutoRest - 具有C#和Razor模板的Swagger规范代码生成器

安装 AutoRest

•安装Node.js•使用安装 AutoRest

#根据您的配置,您可能需要提升权限或 root 才能运行它。(在 OSX/Linux 上使用 'sudo') npm install-g autorest

 

使用 AutoRest 生成客户端

AutoRest 的第一步通常从生成单个 OpenAPI 文件开始。我们还将通过逐步构建命令行来展示如何在生成期间设置选项。

具体步骤

第一步是让您的客户端的 OpenAPI 文件定义。

autorest

接下来,我们要告诉 AutoRest 生成哪个 swagger 文件。我们通过将 swagger 文件传递来做到这一点.

autorest --input-file=pets.json

我们还需要告诉 AutoRest 我们希望我们的 SDK 使用哪种语言,我们使用我们的语言标志来指定。为了这个例子,假设我们要生成 Python 代码。将此添加到我们的命令行中,我们得到

autorest --input-file=pets.json --python

在我们的最后一步中,我们可以告诉 AutoRest 在哪里输出生成的 SDK。默认情况下 AutoRest 在输出文件夹中生成文件./generated。但是,我们可以使用 flag 修改输出文件夹--output-folder,我们有:

autorest --input-file=pets.json --python --output-folder=myFolder/

您可以在生成时指定许多其他标志。作为一个附加组件,假设我们想要在 namespace 下生成我们的代码pets。

autorest --input-file=pets.json --python --output-folder=myFolder/ --namespace=pets

我们使用 AutoRest 生成的基本示例到此结束

Github地址

https://github.com/Azure/autorest