Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ab1ea50
feat: update tools and readme
sergey-tihon Aug 31, 2025
ede9586
hk: deps update & Microsoft.OpenApi 2.3
sergey-tihon Aug 31, 2025
79c95d6
migrate v3 provider to new api
sergey-tihon Aug 31, 2025
a27df52
small fixes for test server
sergey-tihon Aug 31, 2025
b1a85ab
feat: pre-release swashbuckle
sergey-tihon Sep 18, 2025
a1c7f4c
feat: add yaml schema format support
sergey-tihon Sep 18, 2025
7f04627
refact selectors
sergey-tihon Sep 19, 2025
09418a4
fix: one null ref
sergey-tihon Sep 25, 2025
9e8659f
fix: few more errors
sergey-tihon Sep 28, 2025
562ece6
fix: unit tests
sergey-tihon Sep 28, 2025
7a92599
Merge branch 'master' into feat/deps
sergey-tihon Oct 11, 2025
0da59cc
update deps
sergey-tihon Oct 11, 2025
06b1c8d
fix: schema generation
sergey-tihon Oct 12, 2025
8e403c4
Merge branch 'master' into feat/deps
sergey-tihon Nov 15, 2025
29c6f8c
feat: update to net20
sergey-tihon Nov 15, 2025
2c861e9
feat: update notes
sergey-tihon Nov 15, 2025
d42e4c2
fix: update version
sergey-tihon Nov 15, 2025
33f46d6
fix: downgrade microsoft.openapi to v2 (supported by aspnet.core .net10)
sergey-tihon Nov 16, 2025
d660ceb
fix: but runtime for net10
sergey-tihon Nov 16, 2025
a3b3620
Merge branch 'master' into feat/deps
sergey-tihon Dec 22, 2025
b881bb0
feat: update deps
sergey-tihon Dec 23, 2025
f0fe00f
fix: paket lock
sergey-tihon Dec 23, 2025
6c93156
fixes by Claude Opus 4.5
sergey-tihon Dec 23, 2025
bebbb84
fix: update release notes
sergey-tihon Dec 24, 2025
82d4f02
fix: support allOf with one element
sergey-tihon Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
"isRoot": true,
"tools": {
"paket": {
"version": "9.0.2",
"version": "10.0.0-alpha011",
"commands": [
"paket"
],
"rollForward": false
},
"dotnet-serve": {
"version": "1.10.175",
"version": "1.10.190",
"commands": [
"dotnet-serve"
],
"rollForward": false
},
"fantomas": {
"version": "7.0.3",
"version": "7.0.5",
"commands": [
"fantomas"
],
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dotnetcore.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:

steps:
- uses: actions/checkout@v1
- name: Setup .NET 9.0 SDK
- name: Setup .NET 10.0 SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: "9.0.x"
dotnet-version: "10.0.x"
- name: Install local tools
run: dotnet tool restore
- name: Paket Restore
Expand Down
10 changes: 5 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@
- **Format Check**: `dotnet fake build -t CheckFormat` (validates Fantomas formatting)
- **Format**: `dotnet fake build -t Format` (applies Fantomas formatting)
- **All Tests**: `dotnet fake build -t RunTests` (builds + starts test server + runs all tests)
- **Unit Tests Only**: `dotnet build && dotnet tests/SwaggerProvider.Tests/bin/Release/net9.0/SwaggerProvider.Tests.dll`
- **Unit Tests Only**: `dotnet build && dotnet tests/SwaggerProvider.Tests/bin/Release/net10.0/SwaggerProvider.Tests.dll`
- **Provider Tests (Integration)**:
1. Build test server: `dotnet build tests/Swashbuckle.WebApi.Server/Swashbuckle.WebApi.Server.fsproj -c Release`
2. Start server in background: `dotnet tests/Swashbuckle.WebApi.Server/bin/Release/net9.0/Swashbuckle.WebApi.Server.dll`
2. Start server in background: `dotnet tests/Swashbuckle.WebApi.Server/bin/Release/net10.0/Swashbuckle.WebApi.Server.dll`
3. Build tests: `dotnet build SwaggerProvider.TestsAndDocs.sln -c Release`
4. Run tests: `dotnet tests/SwaggerProvider.ProviderTests/bin/Release/net9.0/SwaggerProvider.ProviderTests.dll`
4. Run tests: `dotnet tests/SwaggerProvider.ProviderTests/bin/Release/net10.0/SwaggerProvider.ProviderTests.dll`
- **Single Test**: Run via xunit runner: `dotnet [assembly] [filter]`

## Code Style Guidelines

**Language**: F# (net9.0 target framework)
**Language**: F# (net10.0 target framework)

**Imports & Namespaces**:

Expand Down Expand Up @@ -60,4 +60,4 @@

- Type Providers use `ProvidedApiClientBase` and compiler pipeline (DefinitionCompiler, OperationCompiler)
- SSRF protection enabled by default; disable with `SsrfProtection=false` static parameter
- Target net9.0; use implicit async/await (task expressions)
- Target net10.0; use implicit async/await (task expressions)
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# SwaggerProvider [![NuGet Badge](https://buildstats.info/nuget/SwaggerProvider)](https://www.nuget.org/packages/SwaggerProvider)
# SwaggerProvider

This SwaggerProvider can be used to access RESTful API generated using [Swagger.io](http://swagger.io)
![NuGet Version](https://badgen.net/nuget/v/SwaggerProvider) ![NuGet Downloads](https://badgen.net/nuget/dt/SwaggerProvider)

[![Build Status](https://github.com/fsprojects/SwaggerProvider/workflows/Build%20and%20Test/badge.svg?branch=master)](https://github.com/fsprojects/SwaggerProvider/actions?query=branch%3Amaster)
This SwaggerProvider can be used to access RESTful API generated using [Swagger.io](http://swagger.io)

Documentation: http://fsprojects.github.io/SwaggerProvider/
Documentation: <http://fsprojects.github.io/SwaggerProvider/>

**Security:** SSRF protection is enabled by default. For local development, use static parameter `SsrfProtection=false`.

Expand All @@ -13,10 +13,8 @@ Documentation: http://fsprojects.github.io/SwaggerProvider/
Swagger is available for ASP.NET WebAPI APIs with [Swashbuckle](https://github.com/domaindrivendev/Swashbuckle).
Also possible to [Create an ASP.NET API app in Azure App Service](https://azure.microsoft.com/en-us/documentation/articles/app-service-dotnet-create-api-app/)


## Maintainer(s)

- [@sergey-tihon](https://github.com/sergey-tihon)

The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)

6 changes: 3 additions & 3 deletions build.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ let webApiInputStream = StreamRef.Empty
Target.create "StartServer" (fun _ ->
Target.activateFinal "StopServer"

CreateProcess.fromRawCommandLine "dotnet" "tests/Swashbuckle.WebApi.Server/bin/Release/net9.0/Swashbuckle.WebApi.Server.dll"
CreateProcess.fromRawCommandLine "dotnet" "tests/Swashbuckle.WebApi.Server/bin/Release/net10.0/Swashbuckle.WebApi.Server.dll"
|> CreateProcess.withStandardInput(CreatePipe webApiInputStream)
|> Proc.start
|> ignore
Expand All @@ -116,9 +116,9 @@ Target.create "BuildTests" (fun _ -> dotnet "build" "SwaggerProvider.TestsAndDoc
let runTests assembly =
dotnet $"{assembly}" ""

Target.create "RunUnitTests" (fun _ -> runTests "tests/SwaggerProvider.Tests/bin/Release/net9.0/SwaggerProvider.Tests.dll")
Target.create "RunUnitTests" (fun _ -> runTests "tests/SwaggerProvider.Tests/bin/Release/net10.0/SwaggerProvider.Tests.dll")

Target.create "RunIntegrationTests" (fun _ -> runTests "tests/SwaggerProvider.ProviderTests/bin/Release/net9.0/SwaggerProvider.ProviderTests.dll")
Target.create "RunIntegrationTests" (fun _ -> runTests "tests/SwaggerProvider.ProviderTests/bin/Release/net10.0/SwaggerProvider.ProviderTests.dll")

Target.create "RunTests" ignore

Expand Down
7 changes: 5 additions & 2 deletions docs/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
#### 3.0.0-beta02 - Dec 22, 2025
#### 3.0.0-beta03 - Dec 24, 2025

- Server-Side Request Forgery (SSRF) protection for IP V4 (#271) and V6 (#272)
- feat: Microsoft.OpenApi v2.x with OpenAPI v3.1 Support
- feat: Server-Side Request Forgery (SSRF) protection for IP V4 (#271) and V6 (#272)
- feat: handle text/plain payload types (#276)
- fix: removed dependency on Microsoft.OpenApi.Readers
- fix: error messages when `operationId` is not provided (minimal api) (#277)
- hk: dependencies update

#### 2.3.2 - Oct 11, 2025

Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "9.0.101",
"version": "10.0.100",
"rollForward": "minor"
}
}
17 changes: 9 additions & 8 deletions paket.dependencies
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
version 8.0.3
version 9.0.2
source https://api.nuget.org/v3/index.json
storage: none

nuget FSharp.Core ~> 6 // We need task{} CE from F# 6.0
nuget System.Text.Json ~> 6
nuget FSharp.Core ~> 8
nuget System.Text.Json ~> 8
nuget FSharp.SystemTextJson
nuget Microsoft.OpenApi.Readers
nuget Microsoft.OpenApi ~> 2 # https://github.com/microsoft/OpenAPI.NET/blob/main/CONTRIBUTING.md#branches-and-support-policy
nuget Microsoft.OpenApi.YamlReader
nuget NETStandard.Library.NETFramework

# delete when we drop custom parser for v2
Expand All @@ -20,26 +21,26 @@ github fsprojects/FSharp.Data:main src/FSharp.Data.Runtime.Utilities/NameUtils.f

group Server
source https://api.nuget.org/v3/index.json
framework: net9.0
framework: net10.0

nuget Microsoft.AspNetCore
nuget Microsoft.AspNetCore.Mvc
nuget Microsoft.AspNetCore.HttpsPolicy
nuget Swashbuckle.AspNetCore
nuget Microsoft.OpenApi
nuget Microsoft.OpenApi ~> 2
nuget FSharp.Core
nuget System.Text.Json


group Test
source https://api.nuget.org/v3/index.json
frameworks: net9.0
frameworks: net10.0

nuget FSharp.Compiler.Service
nuget FSharp.Core

nuget Microsoft.NET.Test.Sdk
nuget FsUnit.Xunit

nuget Microsoft.OpenApi.Readers redirects: force
nuget Microsoft.OpenApi ~> 2
nuget FSharp.SystemTextJson
Loading
Loading