Oxpecker.OpenApi 0.1.1
dotnet add package Oxpecker.OpenApi --version 0.1.1
NuGet\Install-Package Oxpecker.OpenApi -Version 0.1.1
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Oxpecker.OpenApi" Version="0.1.1" />
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add Oxpecker.OpenApi --version 0.1.1
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获得支持。
#r "nuget: Oxpecker.OpenApi, 0.1.1"
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将此复制到交互式工具或脚本的源代码中,以引用包。
// Install Oxpecker.OpenApi as a Cake Addin #addin nuget:?package=Oxpecker.OpenApi&version=0.1.1 // Install Oxpecker.OpenApi as a Cake Tool #tool nuget:?package=Oxpecker.OpenApi&version=0.1.1
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获得支持。
Oxpecker.OpenApi
Oxpecker.OpenApi
通过代码自动生成 OpenApi spec 功能扩展了 Oxpecker
框架。
两种用法
open Oxpecker
open Oxpecker.OpenApi
let endpoints = [
// addOpenApi supports passing detailed configuration
POST [
route "/product" (text "Product posted!")
|> addOpenApi (OpenApiConfig(
requestBody = RequestBody(typeof<Product>),
responseBodies = [| ResponseBody(typeof<string>) |],
configureOperation = (fun o -> o.OperationId <- "PostProduct"; o)
))
]
// addOpenApiSimple is a shortcut for simple cases
GET [
routef "/product/{%i}" (
fun id ->
forecases
|> Array.find (fun f -> f.Id = num)
|> json
)
|> configureEndpoint _.WithName("GetProduct")
|> addOpenApiSimple<int, Product>
]
]
文档
集成
由于 Oxpecker.OpenApi
在 Microsoft.AspNetCore.OpenApi
和 Swashbuckle.AspNetCore
包的顶部运行,因此您需要执行 标准步骤
let configureApp (appBuilder: IApplicationBuilder) =
appBuilder
.UseRouting()
.Use(errorHandler)
.UseOxpecker(endpoints)
.UseSwagger() // for generating OpenApi spec
.UseSwaggerUI() // for viewing Swagger UI
.Run(notFoundHandler)
let configureServices (services: IServiceCollection) =
services
.AddRouting()
.AddOxpecker()
.AddEndpointsApiExplorer() // use the API Explorer to discover and describe endpoints
.AddSwaggerGen() // swagger dependencies
|> ignore
要使端点可通过 Swagger 发现,您需要在端点上调用以下函数之一: addOpenApi
或 addOpenApiSimple
。
注意:当使用这些函数时,您不需要描述路由参数,它们将自动从路由模板中推断出来。
addOpenApi
此方法用于向端点添加 OpenApi 元数据。它接受带有以下可选参数的 OpenApiConfig
对象
type OpenApiConfig (?requestBody : RequestBody,
?responseBodies : ResponseBody seq,
?configureOperation : OpenApiOperation -> OpenApiOperation) =
// ...
从传递给 requestBody
和 responseBodies
参数的类型中推断出响应体架构。每个 ResponseBody
对象在序列中都必须具有不同的状态码。configureOperation
参数是一个函数,它允许您对 OpenApiOperation
对象进行非常底层的修改。
addOpenApiSimple
此方法适用于简单情况的一种快捷方式。它接受两个泛型类型参数 - 请求数据和响应数据,因此模式可以从它们推断出来。
let addOpenApiSimple<'Req, 'Res> = ...
如果你的处理程序不接受任何输入,你可以使用unit
作为请求数据类型(响应数据也同样适用)。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET | net8.0 是兼容的。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
-
net8.0
- FSharp.Core (>= 8.0.200)
- Microsoft.AspNetCore.OpenApi (>= 8.0.1)
- Oxpecker (>= 0.10.0)
NuGet包
此包未被任何NuGet包使用。
GitHub仓库
此包未被任何流行GitHub仓库使用。
添加徽标