Devlooped.Azure.Functions.OpenApi 0.3.1

Prefix Reserved
dotnet add package Devlooped.Azure.Functions.OpenApi --version 0.3.1                
NuGet\Install-Package Devlooped.Azure.Functions.OpenApi -Version 0.3.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Devlooped.Azure.Functions.OpenApi" Version="0.3.1" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中,以引用此包。
paket add Devlooped.Azure.Functions.OpenApi --version 0.3.1                
#r "nuget: Devlooped.Azure.Functions.OpenApi, 0.3.1"                
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将此复制到交互式工具或脚本的源代码中,以引用此包。
// Install Devlooped.Azure.Functions.OpenApi as a Cake Addin
#addin nuget:?package=Devlooped.Azure.Functions.OpenApi&version=0.3.1

// Install Devlooped.Azure.Functions.OpenApi as a Cake Tool
#tool nuget:?package=Devlooped.Azure.Functions.OpenApi&version=0.3.1                

Icon C# Azure Functions 的 OpenAPI/Swagger 生成器

Version Downloads License Build

为 C# Azure Functions 提供零代码基础 OpenAPI (Swagger) 生成器。

使用方法

只需安装软件包并运行应用程序。默认情况下,您将获得一个返回 Swagger UI 的端点 openapi,该 UI 允您浏览您的 API,以及包含标准 swagger.json 文件的端点。生成的 Swagger 文件将包含编译中的所有 HTTP 触发函数。

endpoints screenshot

这假设在 host.json 中已将 routePrefix 配置为空(以覆盖默认的 /api)。

{
  ...
  "extensions": {
    "http": {
      "routePrefix": ""
    }
  }
}

打开 openapi 端点会渲染 SwaggerUI

swagger UI screenshot

生成的 swagger.json 可以在项目的中间输出路径中检查(默认情况下,obj\Debug\[TFM]\openapi\v2\swagger.json)。

《swagger.json》以及函数端点在构建时由一个C#源码生成器生成。因此,您可以通过将项目属性EmitCompilerGeneratedFiles设置为true来检查生成的代码,例如:

  <PropertyGroup>
    <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
  </PropertyGroup>

这将将在$(IntermediateOutputPath)\generated\Devlooped.Azure.Functions.OpenApi\SourceGenerator下生成函数源文件。

generated sources screenshot

自定义

有几种方法可以自定义生成过程,所有这些方法都由MSBuild驱动。

主要的生成驱动器是一个MSBuild项目项OpenApi,它包含各种元数据以调整输出。其项目定义如下:

  <ItemDefinitionGroup>
    <OpenApi>
      <Title />
      <Description />
      <Version />
      <Route />
      <Url />
      <SchemaVersion>2</SchemaVersion>
    </OpenApi>
  </ItemDefinitionGroup>

如果没有提供<OpenApi Include="..">,则自动添加,并应用默认值。

默认值如下:

  • 标题:首先尝试从$(AssemblyTitle)$(Product)$(ProductName)$(Title)中获取非空值。
  • 描述$(Description)
  • 版本:首先尝试从$(Version)$(InformationalVersion)$(AssemblyVersion)中获取非空值。
  • 路由/openapi/v%(SchemaVersion)/swagger.json,其中默认的SchemaVersion2
  • URL/apiextensions.http.routePrefix,在host.json中设置为非空值时使用,否则为/

Usage

CI Version Build

我们还从分支和拉取请求中生成CI包,以便您可以尽快使用生成的构建。

CI源是从https://pkg.kzu.io/index.json

包的版本规则如下:

  • PR构建:42.42.42-pr[NUMBER]
  • 分支构建:42.42.42-[BRANCH].[COMMITS]

赞助商

sponsored clariusclarius

也在这里提到了!

产品 兼容和额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容目标框架
包含的目标框架(在包中)
关于目标框架更多信息.NET Standard

NuGet 包

此包未使用任何 NuGet 包。

GitHub 仓库

此包未使用任何流行的 GitHub 仓库。

版本 下载 上次更新
0.3.1 359 9/30/2021
0.3.0 282 9/30/2021
0.2.0 317 9/30/2021