Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
"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"
],
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
8 changes: 8 additions & 0 deletions docs/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
#### 3.0.0 - Nov 15, 2025

- Server-Side Request Forgery (SSRF) protection (#271)
- SSRF for IP V6 and Tests (#272)
- Microsoft.OpenApi v3.0 with OpenAPI v3.1 Support
- Removed dependency on Microsoft.OpenApi.Readers
- Dependencies update

#### 2.3.2 - Oct 11, 2025

- Added support for `text/*` media type (#270) by @spaasis
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