diff --git a/.gitignore b/.gitignore
index c5305f08..5190392f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,7 @@ PublishProfiles
*.GhostDoc.xml
*.log
*.nupkg
+!.packages/*.nupkg
*.opensdf
*.[Pp]ublish.xml
*.publishproj
diff --git a/.packages/Swashbuckle.AspNetCore.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..bc15faf0
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.Annotations.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.Annotations.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..1ec614f3
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.Annotations.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.Annotations.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.Annotations.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..122cbc5d
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.Annotations.9.0.0-pr.3283.1370.snupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.ApiTesting.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.ApiTesting.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..553fb5be
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.ApiTesting.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.ApiTesting.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.ApiTesting.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..15706586
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.ApiTesting.9.0.0-pr.3283.1370.snupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.ApiTesting.Xunit.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.ApiTesting.Xunit.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..80458dba
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.ApiTesting.Xunit.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.ApiTesting.Xunit.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.ApiTesting.Xunit.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..9d4fd327
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.ApiTesting.Xunit.9.0.0-pr.3283.1370.snupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.Cli.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.Cli.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..ad89fc95
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.Cli.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.Cli.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.Cli.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..e5421902
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.Cli.9.0.0-pr.3283.1370.snupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.Newtonsoft.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.Newtonsoft.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..be9aa678
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.Newtonsoft.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.Newtonsoft.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.Newtonsoft.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..00202010
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.Newtonsoft.9.0.0-pr.3283.1370.snupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.ReDoc.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.ReDoc.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..1106f97b
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.ReDoc.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.ReDoc.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.ReDoc.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..98af00cb
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.ReDoc.9.0.0-pr.3283.1370.snupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.Swagger.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.Swagger.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..9f293fed
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.Swagger.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.Swagger.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.Swagger.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..0ff3e750
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.Swagger.9.0.0-pr.3283.1370.snupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.SwaggerGen.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.SwaggerGen.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..9d6ce3cb
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.SwaggerGen.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.SwaggerGen.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.SwaggerGen.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..1079f58d
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.SwaggerGen.9.0.0-pr.3283.1370.snupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.SwaggerUI.9.0.0-pr.3283.1370.nupkg b/.packages/Swashbuckle.AspNetCore.SwaggerUI.9.0.0-pr.3283.1370.nupkg
new file mode 100644
index 00000000..69bb6d3d
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.SwaggerUI.9.0.0-pr.3283.1370.nupkg differ
diff --git a/.packages/Swashbuckle.AspNetCore.SwaggerUI.9.0.0-pr.3283.1370.snupkg b/.packages/Swashbuckle.AspNetCore.SwaggerUI.9.0.0-pr.3283.1370.snupkg
new file mode 100644
index 00000000..7d8b5ea1
Binary files /dev/null and b/.packages/Swashbuckle.AspNetCore.SwaggerUI.9.0.0-pr.3283.1370.snupkg differ
diff --git a/NuGet.config b/NuGet.config
index 3d72cb4f..8aef45aa 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -4,6 +4,7 @@
+
@@ -14,6 +15,9 @@
+
+
+
diff --git a/global.json b/global.json
index efdbd0d5..a7076365 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "10.0.100-preview.3.25201.16",
+ "version": "10.0.100-preview.4.25258.110",
"allowPrerelease": false,
"rollForward": "latestMajor"
}
diff --git a/src/TodoApp/OpenApi/AspNetCore/AspNetCoreOpenApiEndpoints.cs b/src/TodoApp/OpenApi/AspNetCore/AspNetCoreOpenApiEndpoints.cs
index 8fc8d2e1..21a78cbd 100644
--- a/src/TodoApp/OpenApi/AspNetCore/AspNetCoreOpenApiEndpoints.cs
+++ b/src/TodoApp/OpenApi/AspNetCore/AspNetCoreOpenApiEndpoints.cs
@@ -46,11 +46,12 @@ public static IServiceCollection AddAspNetCoreOpenApi(this IServiceCollection se
Type = SecuritySchemeType.Http,
};
- var reference = new OpenApiSecuritySchemeReference("Bearer", document);
+ var referenceId = "Bearer";
+ var reference = new OpenApiSecuritySchemeReference(referenceId, document);
document.Components ??= new();
- document.Components.SecuritySchemes ??= new Dictionary();
- document.Components.SecuritySchemes[reference.Reference.Id] = scheme;
+ document.Components.SecuritySchemes ??= [];
+ document.Components.SecuritySchemes[referenceId] = scheme;
document.Security ??= [];
document.Security.Add(new() { [reference] = [] });
diff --git a/src/TodoApp/OpenApi/ExamplesProcessor.cs b/src/TodoApp/OpenApi/ExamplesProcessor.cs
index ed8dc9bf..f5ff54bc 100644
--- a/src/TodoApp/OpenApi/ExamplesProcessor.cs
+++ b/src/TodoApp/OpenApi/ExamplesProcessor.cs
@@ -94,7 +94,10 @@ private static void TryAddRequestExamples(
ApiDescription description,
IList examples)
{
- if (!body.Content.TryGetValue("application/json", out var mediaType) || mediaType.Example is not null)
+ if (body is null ||
+ body.Content is null ||
+ !body.Content.TryGetValue("application/json", out var mediaType) ||
+ mediaType.Example is not null)
{
return;
}
@@ -131,7 +134,7 @@ private static void TryAddResponseExamples(
foreach (var responseFormat in schemaResponse.ApiResponseFormats)
{
if (responses.TryGetValue(schemaResponse.StatusCode.ToString(CultureInfo.InvariantCulture), out var response) &&
- response.Content.TryGetValue(responseFormat.MediaType, out var mediaType))
+ response.Content?.TryGetValue(responseFormat.MediaType, out var mediaType) is true)
{
mediaType.Example ??= (metadata ?? examples.SingleOrDefault((p) => p.SchemaType == schemaResponse.Type))?.GenerateExample(Context);
}
diff --git a/src/TodoApp/TodoApp.csproj b/src/TodoApp/TodoApp.csproj
index f6462c4e..ea2856f1 100644
--- a/src/TodoApp/TodoApp.csproj
+++ b/src/TodoApp/TodoApp.csproj
@@ -14,14 +14,14 @@
latest
-
-
-
-
+
+
+
+
-
-
+
+
diff --git a/tests/TodoApp.Tests/OpenApiTests.cs b/tests/TodoApp.Tests/OpenApiTests.cs
index 8097ce35..06a2f654 100644
--- a/tests/TodoApp.Tests/OpenApiTests.cs
+++ b/tests/TodoApp.Tests/OpenApiTests.cs
@@ -65,7 +65,10 @@ public async Task Schema_Has_No_Validation_Warnings(string schemaUrl)
// Assert
var actual = await OpenApiDocument.LoadAsync(schema, "json", cancellationToken: TestContext.Current.CancellationToken);
+ Assert.NotNull(actual);
+ Assert.NotNull(actual.Diagnostic);
Assert.Empty(actual.Diagnostic.Errors);
+ Assert.NotNull(actual.Document);
var errors = actual.Document.Validate(ruleSet);
diff --git a/tests/TodoApp.Tests/TodoApp.Tests.csproj b/tests/TodoApp.Tests/TodoApp.Tests.csproj
index 63602b21..d3e93996 100644
--- a/tests/TodoApp.Tests/TodoApp.Tests.csproj
+++ b/tests/TodoApp.Tests/TodoApp.Tests.csproj
@@ -10,7 +10,7 @@
-
+