SwaggerProvider
SwaggerProvider is an F# generative Type Provider that auto-generates strongly-typed HTTP clients from OpenAPI 3.0 and Swagger 2.0 schemas — no code generation step required.
The single provider, OpenApiClientProvider, uses Microsoft.OpenApi.Readers to parse both OpenAPI and Swagger schemas in JSON and YAML formats, and works on net8.0+.
Getting Started
F# Interactive
Create a new F# script file (e.g. openapi.fsx) and paste:
fsharp
#r "nuget: SwaggerProvider"
open SwaggerProvider
let [<Literal>] Schema = "https://petstore.swagger.io/v2/swagger.json"
type PetStore = OpenApiClientProvider<Schema>
let client = PetStore.Client()
client.GetInventory()
|> Async.AwaitTask
|> Async.RunSynchronouslyNew Project
bash
dotnet new console --name apiclient --language F#
cd apiclient
dotnet add package SwaggerProviderReplace the content of Program.fs with:
fsharp
open SwaggerProvider
let [<Literal>] Schema = "https://petstore.swagger.io/v2/swagger.json"
type PetStore = OpenApiClientProvider<Schema>
[<EntryPoint>]
let main argv =
let client = PetStore.Client()
client.GetInventory()
|> Async.AwaitTask
|> Async.RunSynchronously
|> printfn "%O"
0Then build and run:
bash
dotnet runSee OpenApiClientProvider for full parameter documentation and Customization for advanced scenarios.
