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                
#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                

Oxpecker.OpenApi

Oxpecker.OpenApi 通过代码自动生成 OpenApi spec 功能扩展了 Oxpecker 框架。

NuGet 包

两种用法

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.OpenApiMicrosoft.AspNetCore.OpenApiSwashbuckle.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 发现,您需要在端点上调用以下函数之一: addOpenApiaddOpenApiSimple

注意:当使用这些函数时,您不需要描述路由参数,它们将自动从路由模板中推断出来。

addOpenApi

此方法用于向端点添加 OpenApi 元数据。它接受带有以下可选参数的 OpenApiConfig 对象

type OpenApiConfig (?requestBody : RequestBody,
                    ?responseBodies : ResponseBody seq,
                    ?configureOperation : OpenApiOperation -> OpenApiOperation) =
    // ...

从传递给 requestBodyresponseBodies 参数的类型中推断出响应体架构。每个 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 已计算。
兼容目标框架
包含目标框架(在包中)
更多关于目标框架.NET Standard的信息。

NuGet包

此包未被任何NuGet包使用。

GitHub仓库

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

版本 下载 最后更新
0.1.1 345 4/29/2024
0.1.0 207 3/23/2024

添加徽标