{"id":15060947,"url":"https://github.com/fsprojects/swaggerprovider","last_synced_at":"2026-05-16T20:02:09.612Z","repository":{"id":29330745,"uuid":"32864387","full_name":"fsprojects/SwaggerProvider","owner":"fsprojects","description":"F# generative Type Provider for Swagger","archived":false,"fork":false,"pushed_at":"2026-05-16T09:21:20.000Z","size":4716,"stargazers_count":276,"open_issues_count":4,"forks_count":60,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-05-16T11:33:53.233Z","etag":null,"topics":["fsharp","openapi","openapi2","openapi3","swagger","typeprovider"],"latest_commit_sha":null,"homepage":"https://fsprojects.github.io/SwaggerProvider/","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fsprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2015-03-25T12:54:10.000Z","updated_at":"2026-05-16T09:21:06.000Z","dependencies_parsed_at":"2023-11-13T09:29:50.672Z","dependency_job_id":"71d1ddea-a2da-4816-8de6-704d96bd24ba","html_url":"https://github.com/fsprojects/SwaggerProvider","commit_stats":{"total_commits":542,"total_committers":27,"mean_commits":"20.074074074074073","dds":"0.16789667896678961","last_synced_commit":"eb38d41d241189e9b7480f9c46fdb5b3d90feb9a"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/fsprojects/SwaggerProvider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FSwaggerProvider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FSwaggerProvider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FSwaggerProvider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FSwaggerProvider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fsprojects","download_url":"https://codeload.github.com/fsprojects/SwaggerProvider/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FSwaggerProvider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33117350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"ssl_error","status_checked_at":"2026-05-16T18:38:29.903Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fsharp","openapi","openapi2","openapi3","swagger","typeprovider"],"created_at":"2024-09-24T23:07:12.041Z","updated_at":"2026-05-16T20:02:09.607Z","avatar_url":"https://github.com/fsprojects.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SwaggerProvider\n\n[![NuGet Version](https://badgen.net/nuget/v/SwaggerProvider)](https://www.nuget.org/packages/SwaggerProvider)\n[![NuGet Downloads](https://badgen.net/nuget/dt/SwaggerProvider)](https://www.nuget.org/packages/SwaggerProvider)\n[![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/)\n\n**SwaggerProvider** is an F# library of generative [Type Providers](https://learn.microsoft.com/en-us/dotnet/fsharp/tutorials/type-providers/) that auto-generate strongly-typed HTTP client code from [OpenAPI 3.0](https://swagger.io/specification/) and [Swagger 2.0](https://swagger.io/specification/v2/) schemas — no code generation step required.\n\n📚 **Full documentation:** \u003chttps://fsprojects.github.io/SwaggerProvider/\u003e\n\n## Quick Start\n\n```fsharp\n#r \"nuget: SwaggerProvider\"\nopen SwaggerProvider\n\nlet [\u003cLiteral\u003e] Schema = \"https://petstore.swagger.io/v2/swagger.json\"\ntype PetStore = OpenApiClientProvider\u003cSchema\u003e\n\nlet client = PetStore.Client()\nclient.GetInventory() |\u003e Async.AwaitTask |\u003e Async.RunSynchronously\n```\n\n## Features\n\n- **Compile-Time Types** — generated at compile time directly from live or local schema files, no separate codegen step needed\n- Supports **OpenAPI 3.0** and **Swagger 2.0** schemas in JSON and YAML formats\n- **Works Everywhere** — F# scripts, .NET projects, and F# Interactive with full IntelliSense and type-checking\n- **SSRF Protection** — blocks HTTP and private IP addresses by default to prevent server-side request forgery attacks\n- **CancellationToken Support** — every generated method accepts an optional CancellationToken for cancelling long-running requests\n- **Fully Customizable** — bring your own HttpClient, DelegatingHandler, or override JSON serialization\n\n## Installation\n\n```bash\ndotnet add package SwaggerProvider\n```\n\n## Key Parameters\n\n| Parameter | Default | Description |\n|-----------|---------|-------------|\n| `Schema` | *(required)* | URL or file path to the OpenAPI/Swagger schema |\n| `SsrfProtection` | `true` | Block HTTP and private IPs to prevent SSRF attacks |\n| `PreferNullable` | `false` | Use `Nullable\u003c_\u003e` instead of `Option\u003c_\u003e` for optional fields |\n| `PreferAsync` | `false` | Generate `Async\u003c'T\u003e` instead of `Task\u003c'T\u003e` |\n| `IgnoreControllerPrefix` | `true` | Generate a single client class for all operations |\n| `IgnoreOperationId` | `false` | Generate method names from paths instead of operation IDs |\n| `IgnoreParseErrors` | `false` | Continue generation even when the parser reports schema warnings |\n\nSee the [full documentation](https://fsprojects.github.io/SwaggerProvider/) for more details and examples.\n\n## Maintainer(s)\n\n- [@sergey-tihon](https://github.com/sergey-tihon)\n\nThe default maintainer account for projects under \"fsprojects\" is [@fsprojectsgit](https://github.com/fsprojectsgit) — F# Community Project Incubation Space.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsprojects%2Fswaggerprovider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffsprojects%2Fswaggerprovider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsprojects%2Fswaggerprovider/lists"}