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
<PackageReference Include="Devlooped.Azure.Functions.OpenApi" Version="0.3.1" />
paket add Devlooped.Azure.Functions.OpenApi --version 0.3.1
#r "nuget: Devlooped.Azure.Functions.OpenApi, 0.3.1"
// 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
C# Azure Functions 的 OpenAPI/Swagger 生成器
为 C# Azure Functions 提供零代码基础 OpenAPI (Swagger) 生成器。
使用方法
只需安装软件包并运行应用程序。默认情况下,您将获得一个返回 Swagger UI 的端点 openapi
,该 UI 允您浏览您的 API,以及包含标准 swagger.json
文件的端点。生成的 Swagger 文件将包含编译中的所有 HTTP 触发函数。
这假设在 host.json 中已将 routePrefix
配置为空(以覆盖默认的 /api
)。
{
...
"extensions": {
"http": {
"routePrefix": ""
}
}
}
打开 openapi
端点会渲染 SwaggerUI
生成的 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
下生成函数源文件。
自定义
有几种方法可以自定义生成过程,所有这些方法都由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
,其中默认的SchemaVersion
为2
。URL
:/api
或extensions.http.routePrefix
,在host.json
中设置为非空值时使用,否则为/
。
Usage
我们还从分支和拉取请求中生成CI包,以便您可以尽快使用生成的构建。
CI源是从https://pkg.kzu.io/index.json
。
包的版本规则如下:
- PR构建:42.42.42-pr
[NUMBER]
- 分支构建:42.42.42-
[BRANCH]
.[COMMITS]
赞助商
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.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 已计算。 |
-
.NETStandard 2.0
- JsonPeek (>= 1.0.3)
- Microsoft.Extensions.FileProviders.Embedded (>= 5.0.0)
- Microsoft.OpenApi (>= 1.2.3)
- Swashbuckle.AspNetCore.SwaggerUI (>= 6.2.1)
NuGet 包
此包未使用任何 NuGet 包。
GitHub 仓库
此包未使用任何流行的 GitHub 仓库。