diff --git a/eng/Versions.props b/eng/Versions.props
index 7ae3fd4c16fb..6efefb0f35ec 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -323,8 +323,8 @@
$(XunitVersion)
$(XunitVersion)
5.2.2
- 2.0.0-preview.18
- 2.0.0-preview.18
+ 2.0.0-preview.29
+ 2.0.0-preview.29
6.0.322601
1.10.93
diff --git a/src/OpenApi/gen/XmlCommentGenerator.Emitter.cs b/src/OpenApi/gen/XmlCommentGenerator.Emitter.cs
index 771f09d181c3..7e27ffb79b95 100644
--- a/src/OpenApi/gen/XmlCommentGenerator.Emitter.cs
+++ b/src/OpenApi/gen/XmlCommentGenerator.Emitter.cs
@@ -58,9 +58,7 @@ namespace Microsoft.AspNetCore.OpenApi.Generated
using Microsoft.AspNetCore.OpenApi;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.DependencyInjection;
- using Microsoft.OpenApi.Models;
- using Microsoft.OpenApi.Models.Interfaces;
- using Microsoft.OpenApi.Models.References;
+ using Microsoft.OpenApi;
{{GeneratedCodeAttribute}}
file record XmlComment(
diff --git a/src/OpenApi/perf/Microbenchmarks/TransformersBenchmark.cs b/src/OpenApi/perf/Microbenchmarks/TransformersBenchmark.cs
index dc7a78d517d7..87434483fc0a 100644
--- a/src/OpenApi/perf/Microbenchmarks/TransformersBenchmark.cs
+++ b/src/OpenApi/perf/Microbenchmarks/TransformersBenchmark.cs
@@ -5,8 +5,7 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
+using Microsoft.OpenApi;
namespace Microsoft.AspNetCore.OpenApi.Microbenchmarks;
@@ -102,7 +101,7 @@ public void SchemaTransformer_Setup()
{
_options.AddSchemaTransformer((schema, context, token) =>
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
if (context.JsonTypeInfo.Type == typeof(Todo) && context.ParameterDescription != null)
{
schema.Extensions["x-my-extension"] = new JsonNodeExtension(context.ParameterDescription.Name);
@@ -176,7 +175,7 @@ private class SchemaTransformer : IOpenApiSchemaTransformer
{
public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext context, CancellationToken cancellationToken)
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
if (context.JsonTypeInfo.Type == typeof(Todo) && context.ParameterDescription != null)
{
schema.Extensions["x-my-extension"] = new JsonNodeExtension(context.ParameterDescription.Name);
diff --git a/src/OpenApi/sample/Program.cs b/src/OpenApi/sample/Program.cs
index cc1899e40482..773e89d28093 100644
--- a/src/OpenApi/sample/Program.cs
+++ b/src/OpenApi/sample/Program.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System.Text.Json.Serialization;
-using Microsoft.OpenApi.Models;
using Sample.Transformers;
var builder = WebApplication.CreateBuilder(args);
diff --git a/src/OpenApi/sample/Sample.csproj b/src/OpenApi/sample/Sample.csproj
index f68e61f29ba8..bc97ebe3f173 100644
--- a/src/OpenApi/sample/Sample.csproj
+++ b/src/OpenApi/sample/Sample.csproj
@@ -39,4 +39,8 @@
+
+
+
+
diff --git a/src/OpenApi/sample/Transformers/AddBearerSecuritySchemeTransformer.cs b/src/OpenApi/sample/Transformers/AddBearerSecuritySchemeTransformer.cs
index 05ea43c8580f..ad841d605991 100644
--- a/src/OpenApi/sample/Transformers/AddBearerSecuritySchemeTransformer.cs
+++ b/src/OpenApi/sample/Transformers/AddBearerSecuritySchemeTransformer.cs
@@ -3,8 +3,6 @@
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.OpenApi;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.Interfaces;
namespace Sample.Transformers;
diff --git a/src/OpenApi/sample/Transformers/AddContactTransformer.cs b/src/OpenApi/sample/Transformers/AddContactTransformer.cs
index 5d9d35f1c7ad..513073a67caf 100644
--- a/src/OpenApi/sample/Transformers/AddContactTransformer.cs
+++ b/src/OpenApi/sample/Transformers/AddContactTransformer.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.AspNetCore.OpenApi;
-using Microsoft.OpenApi.Models;
namespace Sample.Transformers;
diff --git a/src/OpenApi/sample/Transformers/AddExternalDocsTransformer.cs b/src/OpenApi/sample/Transformers/AddExternalDocsTransformer.cs
index b47b3b4d7697..8143890faec3 100644
--- a/src/OpenApi/sample/Transformers/AddExternalDocsTransformer.cs
+++ b/src/OpenApi/sample/Transformers/AddExternalDocsTransformer.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.AspNetCore.OpenApi;
-using Microsoft.OpenApi.Models;
namespace Sample.Transformers;
diff --git a/src/OpenApi/sample/Transformers/OperationTransformers.cs b/src/OpenApi/sample/Transformers/OperationTransformers.cs
index 0c90f63d8e1a..df286b126b56 100644
--- a/src/OpenApi/sample/Transformers/OperationTransformers.cs
+++ b/src/OpenApi/sample/Transformers/OperationTransformers.cs
@@ -2,8 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.AspNetCore.OpenApi;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
namespace Sample.Transformers;
diff --git a/src/OpenApi/src/Extensions/JsonNodeSchemaExtensions.cs b/src/OpenApi/src/Extensions/JsonNodeSchemaExtensions.cs
index 777913ccc567..bde53bfd7f2e 100644
--- a/src/OpenApi/src/Extensions/JsonNodeSchemaExtensions.cs
+++ b/src/OpenApi/src/Extensions/JsonNodeSchemaExtensions.cs
@@ -15,7 +15,6 @@
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Routing;
using Microsoft.AspNetCore.Routing.Constraints;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Extensions/OpenApiDocumentExtensions.cs b/src/OpenApi/src/Extensions/OpenApiDocumentExtensions.cs
index cb3b6b26abfc..c53465f8226c 100644
--- a/src/OpenApi/src/Extensions/OpenApiDocumentExtensions.cs
+++ b/src/OpenApi/src/Extensions/OpenApiDocumentExtensions.cs
@@ -1,10 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.Interfaces;
-using Microsoft.OpenApi.Models.References;
-
namespace Microsoft.AspNetCore.OpenApi;
internal static class OpenApiDocumentExtensions
diff --git a/src/OpenApi/src/Extensions/OpenApiEndpointConventionBuilderExtensions.cs b/src/OpenApi/src/Extensions/OpenApiEndpointConventionBuilderExtensions.cs
index 936eebf24cd4..ac4b49ca8306 100644
--- a/src/OpenApi/src/Extensions/OpenApiEndpointConventionBuilderExtensions.cs
+++ b/src/OpenApi/src/Extensions/OpenApiEndpointConventionBuilderExtensions.cs
@@ -9,7 +9,6 @@
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.Builder;
diff --git a/src/OpenApi/src/Extensions/OpenApiEndpointRouteBuilderExtensions.cs b/src/OpenApi/src/Extensions/OpenApiEndpointRouteBuilderExtensions.cs
index 95ef73102184..8fdbfa27d723 100644
--- a/src/OpenApi/src/Extensions/OpenApiEndpointRouteBuilderExtensions.cs
+++ b/src/OpenApi/src/Extensions/OpenApiEndpointRouteBuilderExtensions.cs
@@ -8,8 +8,6 @@
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Writers;
namespace Microsoft.AspNetCore.Builder;
@@ -25,10 +23,10 @@ public static class OpenApiEndpointRouteBuilderExtensions
/// The .
/// The route to register the endpoint on. Must include the 'documentName' route parameter.
/// An that can be used to further customize the endpoint.
- public static IEndpointConventionBuilder MapOpenApi(this IEndpointRouteBuilder endpoints, [StringSyntax("Route")] string pattern = OpenApiConstants.DefaultOpenApiRoute)
+ public static IEndpointConventionBuilder MapOpenApi(this IEndpointRouteBuilder endpoints, [StringSyntax("Route")] string pattern = OpenApi.OpenApiConstants.DefaultOpenApiRoute)
{
var options = endpoints.ServiceProvider.GetRequiredService>();
- return endpoints.MapGet(pattern, async (HttpContext context, string documentName = OpenApiConstants.DefaultDocumentName) =>
+ return endpoints.MapGet(pattern, async (HttpContext context, string documentName = OpenApi.OpenApiConstants.DefaultDocumentName) =>
{
// We need to retrieve the document name in a case-insensitive manner to support case-insensitive document name resolution.
// The document service is registered with a key equal to the document name, but in lowercase.
diff --git a/src/OpenApi/src/Extensions/OpenApiServiceCollectionExtensions.cs b/src/OpenApi/src/Extensions/OpenApiServiceCollectionExtensions.cs
index 6516247a215e..1e96388af3b0 100644
--- a/src/OpenApi/src/Extensions/OpenApiServiceCollectionExtensions.cs
+++ b/src/OpenApi/src/Extensions/OpenApiServiceCollectionExtensions.cs
@@ -7,6 +7,7 @@
using Microsoft.Extensions.ApiDescriptions;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
+using OpenApiConstants = Microsoft.AspNetCore.OpenApi.OpenApiConstants;
namespace Microsoft.Extensions.DependencyInjection;
diff --git a/src/OpenApi/src/Microsoft.AspNetCore.OpenApi.csproj b/src/OpenApi/src/Microsoft.AspNetCore.OpenApi.csproj
index bea66b4fe4ae..7bf5362ca205 100644
--- a/src/OpenApi/src/Microsoft.AspNetCore.OpenApi.csproj
+++ b/src/OpenApi/src/Microsoft.AspNetCore.OpenApi.csproj
@@ -49,11 +49,12 @@
-
+
+
+
+
+
diff --git a/src/OpenApi/src/PublicAPI.Unshipped.txt b/src/OpenApi/src/PublicAPI.Unshipped.txt
index 8c0657a70dca..b94c71e90cb6 100644
--- a/src/OpenApi/src/PublicAPI.Unshipped.txt
+++ b/src/OpenApi/src/PublicAPI.Unshipped.txt
@@ -1,11 +1,25 @@
#nullable enable
+*REMOVED*Microsoft.AspNetCore.OpenApi.IOpenApiDocumentTransformer.TransformAsync(Microsoft.OpenApi.Models.OpenApiDocument! document, Microsoft.AspNetCore.OpenApi.OpenApiDocumentTransformerContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+*REMOVED*Microsoft.AspNetCore.OpenApi.IOpenApiOperationTransformer.TransformAsync(Microsoft.OpenApi.Models.OpenApiOperation! operation, Microsoft.AspNetCore.OpenApi.OpenApiOperationTransformerContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+*REMOVED*Microsoft.AspNetCore.OpenApi.IOpenApiSchemaTransformer.TransformAsync(Microsoft.OpenApi.Models.OpenApiSchema! schema, Microsoft.AspNetCore.OpenApi.OpenApiSchemaTransformerContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+*REMOVED*Microsoft.AspNetCore.OpenApi.OpenApiOptions.AddDocumentTransformer(System.Func! transformer) -> Microsoft.AspNetCore.OpenApi.OpenApiOptions!
+*REMOVED*Microsoft.AspNetCore.OpenApi.OpenApiOptions.AddOperationTransformer(System.Func! transformer) -> Microsoft.AspNetCore.OpenApi.OpenApiOptions!
+*REMOVED*Microsoft.AspNetCore.OpenApi.OpenApiOptions.AddSchemaTransformer(System.Func! transformer) -> Microsoft.AspNetCore.OpenApi.OpenApiOptions!
+*REMOVED*static Microsoft.AspNetCore.Builder.OpenApiEndpointConventionBuilderExtensions.WithOpenApi(this TBuilder builder, System.Func! configureOperation) -> TBuilder
Microsoft.AspNetCore.OpenApi.IOpenApiDocumentProvider
-Microsoft.AspNetCore.OpenApi.IOpenApiDocumentProvider.GetOpenApiDocumentAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-static Microsoft.AspNetCore.Builder.OpenApiEndpointConventionBuilderExtensions.AddOpenApiOperationTransformer(this TBuilder builder, System.Func! transformer) -> TBuilder
-Microsoft.AspNetCore.OpenApi.OpenApiDocumentTransformerContext.GetOrCreateSchemaAsync(System.Type! type, Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription? parameterDescription = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.AspNetCore.OpenApi.OpenApiOperationTransformerContext.Document.get -> Microsoft.OpenApi.Models.OpenApiDocument?
+Microsoft.AspNetCore.OpenApi.IOpenApiDocumentProvider.GetOpenApiDocumentAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
+Microsoft.AspNetCore.OpenApi.IOpenApiDocumentTransformer.TransformAsync(Microsoft.OpenApi.OpenApiDocument! document, Microsoft.AspNetCore.OpenApi.OpenApiDocumentTransformerContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+Microsoft.AspNetCore.OpenApi.IOpenApiOperationTransformer.TransformAsync(Microsoft.OpenApi.OpenApiOperation! operation, Microsoft.AspNetCore.OpenApi.OpenApiOperationTransformerContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+Microsoft.AspNetCore.OpenApi.IOpenApiSchemaTransformer.TransformAsync(Microsoft.OpenApi.OpenApiSchema! schema, Microsoft.AspNetCore.OpenApi.OpenApiSchemaTransformerContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+Microsoft.AspNetCore.OpenApi.OpenApiOptions.AddDocumentTransformer(System.Func! transformer) -> Microsoft.AspNetCore.OpenApi.OpenApiOptions!
+Microsoft.AspNetCore.OpenApi.OpenApiOptions.AddOperationTransformer(System.Func! transformer) -> Microsoft.AspNetCore.OpenApi.OpenApiOptions!
+Microsoft.AspNetCore.OpenApi.OpenApiOptions.AddSchemaTransformer(System.Func! transformer) -> Microsoft.AspNetCore.OpenApi.OpenApiOptions!
+static Microsoft.AspNetCore.Builder.OpenApiEndpointConventionBuilderExtensions.AddOpenApiOperationTransformer(this TBuilder builder, System.Func! transformer) -> TBuilder
+Microsoft.AspNetCore.OpenApi.OpenApiDocumentTransformerContext.GetOrCreateSchemaAsync(System.Type! type, Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription? parameterDescription = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
+Microsoft.AspNetCore.OpenApi.OpenApiOperationTransformerContext.Document.get -> Microsoft.OpenApi.OpenApiDocument?
Microsoft.AspNetCore.OpenApi.OpenApiOperationTransformerContext.Document.init -> void
-Microsoft.AspNetCore.OpenApi.OpenApiOperationTransformerContext.GetOrCreateSchemaAsync(System.Type! type, Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription? parameterDescription = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
-Microsoft.AspNetCore.OpenApi.OpenApiSchemaTransformerContext.Document.get -> Microsoft.OpenApi.Models.OpenApiDocument?
+Microsoft.AspNetCore.OpenApi.OpenApiOperationTransformerContext.GetOrCreateSchemaAsync(System.Type! type, Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription? parameterDescription = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
+Microsoft.AspNetCore.OpenApi.OpenApiSchemaTransformerContext.Document.get -> Microsoft.OpenApi.OpenApiDocument?
Microsoft.AspNetCore.OpenApi.OpenApiSchemaTransformerContext.Document.init -> void
-Microsoft.AspNetCore.OpenApi.OpenApiSchemaTransformerContext.GetOrCreateSchemaAsync(System.Type! type, Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription? parameterDescription = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
+Microsoft.AspNetCore.OpenApi.OpenApiSchemaTransformerContext.GetOrCreateSchemaAsync(System.Type! type, Microsoft.AspNetCore.Mvc.ApiExplorer.ApiParameterDescription? parameterDescription = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
+static Microsoft.AspNetCore.Builder.OpenApiEndpointConventionBuilderExtensions.WithOpenApi(this TBuilder builder, System.Func! configureOperation) -> TBuilder
diff --git a/src/OpenApi/src/Schemas/OpenApiJsonSchema.Helpers.cs b/src/OpenApi/src/Schemas/OpenApiJsonSchema.Helpers.cs
index 1bf7ccd7921a..6633ddac3f65 100644
--- a/src/OpenApi/src/Schemas/OpenApiJsonSchema.Helpers.cs
+++ b/src/OpenApi/src/Schemas/OpenApiJsonSchema.Helpers.cs
@@ -8,9 +8,7 @@
using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
using Microsoft.AspNetCore.OpenApi;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.Interfaces;
-using Microsoft.OpenApi.Models.References;
+
using OpenApiConstants = Microsoft.AspNetCore.OpenApi.OpenApiConstants;
internal sealed partial class OpenApiJsonSchema
@@ -309,14 +307,14 @@ public static void ReadProperty(ref Utf8JsonReader reader, string propertyName,
schema.Discriminator ??= new OpenApiDiscriminator();
foreach (var kvp in mappings)
{
- schema.Discriminator.Mapping ??= [];
+ schema.Discriminator.Mapping ??= new Dictionary();
schema.Discriminator.Mapping[kvp.Key] = new OpenApiSchemaReference(kvp.Value);
}
}
break;
case OpenApiConstants.SchemaId:
reader.Read();
- schema.Metadata ??= [];
+ schema.Metadata ??= new Dictionary();
schema.Metadata.Add(OpenApiConstants.SchemaId, reader.GetString() ?? string.Empty);
break;
// OpenAPI does not support the `const` keyword in its schema implementation, so
@@ -328,7 +326,7 @@ public static void ReadProperty(ref Utf8JsonReader reader, string propertyName,
break;
case OpenApiSchemaKeywords.RefKeyword:
reader.Read();
- schema.Metadata ??= [];
+ schema.Metadata ??= new Dictionary();
schema.Metadata[OpenApiConstants.RefId] = reader.GetString() ?? string.Empty;
break;
default:
diff --git a/src/OpenApi/src/Schemas/OpenApiJsonSchema.cs b/src/OpenApi/src/Schemas/OpenApiJsonSchema.cs
index 08ece97c62a5..3a73ace8778e 100644
--- a/src/OpenApi/src/Schemas/OpenApiJsonSchema.cs
+++ b/src/OpenApi/src/Schemas/OpenApiJsonSchema.cs
@@ -3,7 +3,6 @@
using System.Text.Json;
using System.Text.Json.Serialization;
-using Microsoft.OpenApi.Models;
[JsonConverter(typeof(JsonConverter))]
internal sealed partial class OpenApiJsonSchema(OpenApiSchema schema)
diff --git a/src/OpenApi/src/Services/IDocumentProvider.cs b/src/OpenApi/src/Services/IDocumentProvider.cs
index 31344117305e..2ea36eddf88a 100644
--- a/src/OpenApi/src/Services/IDocumentProvider.cs
+++ b/src/OpenApi/src/Services/IDocumentProvider.cs
@@ -1,8 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.OpenApi;
-
namespace Microsoft.Extensions.ApiDescriptions;
///
diff --git a/src/OpenApi/src/Services/IOpenApiDocumentProvider.cs b/src/OpenApi/src/Services/IOpenApiDocumentProvider.cs
index afefb05eed7c..205679310a15 100644
--- a/src/OpenApi/src/Services/IOpenApiDocumentProvider.cs
+++ b/src/OpenApi/src/Services/IOpenApiDocumentProvider.cs
@@ -1,8 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.OpenApi.Models;
-
namespace Microsoft.AspNetCore.OpenApi;
///
diff --git a/src/OpenApi/src/Services/OpenApiDocumentProvider.cs b/src/OpenApi/src/Services/OpenApiDocumentProvider.cs
index 3a26e0ad1f4c..7ba8c044a265 100644
--- a/src/OpenApi/src/Services/OpenApiDocumentProvider.cs
+++ b/src/OpenApi/src/Services/OpenApiDocumentProvider.cs
@@ -4,9 +4,6 @@
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
-using Microsoft.OpenApi;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Writers;
using System.Linq;
namespace Microsoft.Extensions.ApiDescriptions;
diff --git a/src/OpenApi/src/Services/OpenApiDocumentService.cs b/src/OpenApi/src/Services/OpenApiDocumentService.cs
index 4a2a426c7f4d..d8676530f00e 100644
--- a/src/OpenApi/src/Services/OpenApiDocumentService.cs
+++ b/src/OpenApi/src/Services/OpenApiDocumentService.cs
@@ -27,9 +27,6 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using Microsoft.Net.Http.Headers;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.Interfaces;
-using Microsoft.OpenApi.Models.References;
namespace Microsoft.AspNetCore.OpenApi;
@@ -270,7 +267,7 @@ private async Task> GetOperationsAsync(
foreach (var description in descriptions)
{
var operation = await GetOperationAsync(description, document, scopedServiceProvider, schemaTransformers, cancellationToken);
- operation.Metadata ??= [];
+ operation.Metadata ??= new Dictionary();
operation.Metadata.Add(OpenApiConstants.DescriptionId, description.ActionDescriptor.Id);
var operationContext = new OpenApiOperationTransformerContext
@@ -343,7 +340,7 @@ private static HashSet GetTags(ApiDescription description,
HashSet tags = [];
foreach (var tag in tagsMetadata.Tags)
{
- document.Tags ??= [];
+ document.Tags ??= new HashSet();
document.Tags.Add(new OpenApiTag { Name = tag });
tags.Add(new OpenApiTagReference(tag, document));
@@ -353,7 +350,7 @@ private static HashSet GetTags(ApiDescription description,
// If no tags are specified, use the controller name as the tag. This effectively
// allows us to group endpoints by the "resource" concept (e.g. users, todos, etc.)
var controllerName = description.ActionDescriptor.RouteValues["controller"];
- document.Tags ??= [];
+ document.Tags ??= new HashSet();
document.Tags.Add(new OpenApiTag { Name = controllerName });
return controllerName is not null ? [new(controllerName, document)] : [];
}
@@ -403,7 +400,7 @@ private async Task GetResponseAsync(
var response = new OpenApiResponse
{
Description = apiResponseType.Description ?? ReasonPhrases.GetReasonPhrase(statusCode),
- Content = []
+ Content = new Dictionary()
};
// ApiResponseFormats aggregates information about the supported response content types
@@ -543,10 +540,10 @@ private async Task GetFormRequestBody(
// serializing a form collection from an empty body. Instead, requiredness
// must be set on a per-parameter basis. See below.
Required = true,
- Content = []
+ Content = new Dictionary()
};
- var schema = new OpenApiSchema { Type = JsonSchemaType.Object, Properties = [] };
+ var schema = new OpenApiSchema { Type = JsonSchemaType.Object, Properties = new Dictionary() };
IOpenApiSchema? complexTypeSchema = null;
// Group form parameters by their name because MVC explodes form parameters that are bound from the
// same model instance into separate ApiParameterDescriptions in ApiExplorer, while minimal APIs does not.
@@ -574,7 +571,7 @@ private async Task GetFormRequestBody(
{
if (IsRequired(description))
{
- schema.Required ??= [];
+ schema.Required ??= new HashSet();
schema.Required.Add(description.Name);
}
if (hasMultipleFormParameters)
@@ -591,7 +588,7 @@ private async Task GetFormRequestBody(
}
else
{
- schema.Properties ??= [];
+ schema.Properties ??= new Dictionary();
schema.Properties[description.Name] = parameterSchema;
}
}
@@ -616,7 +613,7 @@ private async Task GetFormRequestBody(
{
if (IsRequired(description))
{
- schema.Required ??= [];
+ schema.Required ??= new HashSet();
schema.Required.Add(description.Name);
}
schema.AllOf ??= [];
@@ -640,10 +637,10 @@ private async Task GetFormRequestBody(
{
if (IsRequired(description))
{
- schema.Required ??= [];
+ schema.Required ??= new HashSet();
schema.Required.Add(description.Name);
}
- schema.Properties ??= [];
+ schema.Properties ??= new Dictionary();
schema.Properties[description.Name] = parameterSchema;
}
}
@@ -653,7 +650,7 @@ private async Task GetFormRequestBody(
{
if (hasMultipleFormParameters)
{
- var propertySchema = new OpenApiSchema { Type = JsonSchemaType.Object, Properties = [] };
+ var propertySchema = new OpenApiSchema { Type = JsonSchemaType.Object, Properties = new Dictionary() };
foreach (var description in parameter)
{
propertySchema.Properties[description.Name] = await _componentService.GetOrCreateSchemaAsync(document, description.Type, scopedServiceProvider, schemaTransformers, description, cancellationToken: cancellationToken);
@@ -665,7 +662,7 @@ private async Task GetFormRequestBody(
{
foreach (var description in parameter)
{
- schema.Properties ??= [];
+ schema.Properties ??= new Dictionary();
schema.Properties[description.Name] = await _componentService.GetOrCreateSchemaAsync(document, description.Type, scopedServiceProvider, schemaTransformers, description, cancellationToken: cancellationToken);
}
}
@@ -711,13 +708,13 @@ private async Task GetJsonRequestBody(
var requestBody = new OpenApiRequestBody
{
Required = IsRequired(bodyParameter),
- Content = [],
+ Content = new Dictionary(),
Description = GetParameterDescriptionFromAttribute(bodyParameter)
};
- foreach (var requestForm in supportedRequestFormats)
+ foreach (var requestFormat in supportedRequestFormats)
{
- var contentType = requestForm.MediaType;
+ var contentType = requestFormat.MediaType;
requestBody.Content[contentType] = new OpenApiMediaType { Schema = await _componentService.GetOrCreateSchemaAsync(document, bodyParameter.Type, scopedServiceProvider, schemaTransformers, bodyParameter, cancellationToken: cancellationToken) };
}
diff --git a/src/OpenApi/src/Services/OpenApiGenerator.cs b/src/OpenApi/src/Services/OpenApiGenerator.cs
index 5d321bd95382..fd56a779dc88 100644
--- a/src/OpenApi/src/Services/OpenApiGenerator.cs
+++ b/src/OpenApi/src/Services/OpenApiGenerator.cs
@@ -19,9 +19,6 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Internal;
using Microsoft.Extensions.Primitives;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.Interfaces;
-using Microsoft.OpenApi.Models.References;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Services/OpenApiOptions.cs b/src/OpenApi/src/Services/OpenApiOptions.cs
index 76bc00735430..6c0936515307 100644
--- a/src/OpenApi/src/Services/OpenApiOptions.cs
+++ b/src/OpenApi/src/Services/OpenApiOptions.cs
@@ -4,8 +4,6 @@
using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization.Metadata;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
-using Microsoft.OpenApi;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Services/Schemas/OpenApiSchemaService.cs b/src/OpenApi/src/Services/Schemas/OpenApiSchemaService.cs
index 3781b0d420b3..10737cbd5f20 100644
--- a/src/OpenApi/src/Services/Schemas/OpenApiSchemaService.cs
+++ b/src/OpenApi/src/Services/Schemas/OpenApiSchemaService.cs
@@ -1,6 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
+using System.Collections.Concurrent;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Diagnostics;
@@ -16,9 +17,6 @@
using Microsoft.AspNetCore.Mvc.Infrastructure;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.Interfaces;
-using Microsoft.OpenApi.Models.References;
namespace Microsoft.AspNetCore.OpenApi;
@@ -32,6 +30,7 @@ internal sealed class OpenApiSchemaService(
IOptions jsonOptions,
IOptionsMonitor optionsMonitor)
{
+ private readonly ConcurrentDictionary _schemaIdCache = new();
private readonly OpenApiJsonSchemaContext _jsonSchemaContext = new(new(jsonOptions.Value.SerializerOptions));
private readonly JsonSerializerOptions _jsonSerializerOptions = new(jsonOptions.Value.SerializerOptions)
{
@@ -140,10 +139,19 @@ internal async Task GetOrCreateUnresolvedSchemaAsync(OpenApiDocum
internal async Task GetOrCreateSchemaAsync(OpenApiDocument document, Type type, IServiceProvider scopedServiceProvider, IOpenApiSchemaTransformer[] schemaTransformers, ApiParameterDescription? parameterDescription = null, CancellationToken cancellationToken = default)
{
var schema = await GetOrCreateUnresolvedSchemaAsync(document, type, scopedServiceProvider, schemaTransformers, parameterDescription, cancellationToken);
- return ResolveReferenceForSchema(document, schema);
+
+ // Cache the root schema IDs since we expect to be called
+ // on the same type multiple times within an API
+ var baseSchemaId = _schemaIdCache.GetOrAdd(type, t =>
+ {
+ var jsonTypeInfo = _jsonSerializerOptions.GetTypeInfo(t);
+ return optionsMonitor.Get(documentName).CreateSchemaReferenceId(jsonTypeInfo);
+ });
+
+ return ResolveReferenceForSchema(document, schema, baseSchemaId);
}
- internal static IOpenApiSchema ResolveReferenceForSchema(OpenApiDocument document, IOpenApiSchema inputSchema, string? baseSchemaId = null)
+ internal static IOpenApiSchema ResolveReferenceForSchema(OpenApiDocument document, IOpenApiSchema inputSchema, string? rootSchemaId, string? baseSchemaId = null)
{
var schema = UnwrapOpenApiSchema(inputSchema);
@@ -154,7 +162,7 @@ internal static IOpenApiSchema ResolveReferenceForSchema(OpenApiDocument documen
{
for (var i = 0; i < schema.AnyOf.Count; i++)
{
- schema.AnyOf[i] = ResolveReferenceForSchema(document, schema.AnyOf[i], resolvedBaseSchemaId?.ToString());
+ schema.AnyOf[i] = ResolveReferenceForSchema(document, schema.AnyOf[i], rootSchemaId, resolvedBaseSchemaId?.ToString());
}
}
}
@@ -163,7 +171,7 @@ internal static IOpenApiSchema ResolveReferenceForSchema(OpenApiDocument documen
{
foreach (var property in schema.Properties)
{
- schema.Properties[property.Key] = ResolveReferenceForSchema(document, property.Value);
+ schema.Properties[property.Key] = ResolveReferenceForSchema(document, property.Value, rootSchemaId);
}
}
@@ -171,7 +179,7 @@ internal static IOpenApiSchema ResolveReferenceForSchema(OpenApiDocument documen
{
for (var i = 0; i < schema.AllOf.Count; i++)
{
- schema.AllOf[i] = ResolveReferenceForSchema(document, schema.AllOf[i]);
+ schema.AllOf[i] = ResolveReferenceForSchema(document, schema.AllOf[i], rootSchemaId);
}
}
@@ -179,23 +187,23 @@ internal static IOpenApiSchema ResolveReferenceForSchema(OpenApiDocument documen
{
for (var i = 0; i < schema.OneOf.Count; i++)
{
- schema.OneOf[i] = ResolveReferenceForSchema(document, schema.OneOf[i]);
+ schema.OneOf[i] = ResolveReferenceForSchema(document, schema.OneOf[i], rootSchemaId);
}
}
if (schema.AdditionalProperties is not null)
{
- schema.AdditionalProperties = ResolveReferenceForSchema(document, schema.AdditionalProperties);
+ schema.AdditionalProperties = ResolveReferenceForSchema(document, schema.AdditionalProperties, rootSchemaId);
}
if (schema.Items is not null)
{
- schema.Items = ResolveReferenceForSchema(document, schema.Items);
+ schema.Items = ResolveReferenceForSchema(document, schema.Items, rootSchemaId);
}
if (schema.Not is not null)
{
- schema.Not = ResolveReferenceForSchema(document, schema.Not);
+ schema.Not = ResolveReferenceForSchema(document, schema.Not, rootSchemaId);
}
// Handle schemas where the references have been inlined by the JsonSchemaExporter. In this case,
@@ -203,11 +211,16 @@ internal static IOpenApiSchema ResolveReferenceForSchema(OpenApiDocument documen
// case we we want to replace the reference ID with the schema ID that was generated by the
// `CreateSchemaReferenceId` method in the OpenApiSchemaService.
if (schema.Metadata is not null &&
- schema.Metadata.ContainsKey(OpenApiConstants.RefId) &&
- schema.Metadata.TryGetValue(OpenApiConstants.SchemaId, out var schemaId) &&
- schemaId is string schemaIdString)
+ schema.Metadata.TryGetValue(OpenApiConstants.RefId, out var refId) &&
+ refId is string refIdString)
{
- return document.AddOpenApiSchemaByReference(schemaIdString, schema);
+ if (schema.Metadata.TryGetValue(OpenApiConstants.SchemaId, out var schemaId) &&
+ schemaId is string schemaIdString)
+ {
+ return document.AddOpenApiSchemaByReference(schemaIdString, schema);
+ }
+ var relativeSchemaId = $"#/components/schemas/{rootSchemaId}{refIdString.Replace("#", string.Empty)}";
+ return new OpenApiSchemaReference(relativeSchemaId, document);
}
// If we're resolving schemas for a top-level schema being referenced in the `components.schema` property
diff --git a/src/OpenApi/src/Transformers/DelegateOpenApiDocumentTransformer.cs b/src/OpenApi/src/Transformers/DelegateOpenApiDocumentTransformer.cs
index 3a31bbe7a2bc..38c52189df91 100644
--- a/src/OpenApi/src/Transformers/DelegateOpenApiDocumentTransformer.cs
+++ b/src/OpenApi/src/Transformers/DelegateOpenApiDocumentTransformer.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Transformers/DelegateOpenApiOperationTransformer.cs b/src/OpenApi/src/Transformers/DelegateOpenApiOperationTransformer.cs
index cf7c7ac4ae7f..5b8f9d3267bb 100644
--- a/src/OpenApi/src/Transformers/DelegateOpenApiOperationTransformer.cs
+++ b/src/OpenApi/src/Transformers/DelegateOpenApiOperationTransformer.cs
@@ -1,8 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.OpenApi.Models;
-
namespace Microsoft.AspNetCore.OpenApi;
internal sealed class DelegateOpenApiOperationTransformer : IOpenApiOperationTransformer
diff --git a/src/OpenApi/src/Transformers/DelegateOpenApiSchemaTransformer.cs b/src/OpenApi/src/Transformers/DelegateOpenApiSchemaTransformer.cs
index bfe25b2297f2..3e7e7be27455 100644
--- a/src/OpenApi/src/Transformers/DelegateOpenApiSchemaTransformer.cs
+++ b/src/OpenApi/src/Transformers/DelegateOpenApiSchemaTransformer.cs
@@ -1,8 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.OpenApi.Models;
-
namespace Microsoft.AspNetCore.OpenApi;
internal sealed class DelegateOpenApiSchemaTransformer : IOpenApiSchemaTransformer
diff --git a/src/OpenApi/src/Transformers/IOpenApiDocumentTransformer.cs b/src/OpenApi/src/Transformers/IOpenApiDocumentTransformer.cs
index 5c92a2700e43..b0fe004c2585 100644
--- a/src/OpenApi/src/Transformers/IOpenApiDocumentTransformer.cs
+++ b/src/OpenApi/src/Transformers/IOpenApiDocumentTransformer.cs
@@ -1,8 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.OpenApi.Models;
-
namespace Microsoft.AspNetCore.OpenApi;
///
diff --git a/src/OpenApi/src/Transformers/IOpenApiOperationTransformer.cs b/src/OpenApi/src/Transformers/IOpenApiOperationTransformer.cs
index 3d5227342b34..756dd3b62fd7 100644
--- a/src/OpenApi/src/Transformers/IOpenApiOperationTransformer.cs
+++ b/src/OpenApi/src/Transformers/IOpenApiOperationTransformer.cs
@@ -1,8 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.OpenApi.Models;
-
namespace Microsoft.AspNetCore.OpenApi;
///
diff --git a/src/OpenApi/src/Transformers/IOpenApiSchemaTransformer.cs b/src/OpenApi/src/Transformers/IOpenApiSchemaTransformer.cs
index e971ded4e373..291369a379a3 100644
--- a/src/OpenApi/src/Transformers/IOpenApiSchemaTransformer.cs
+++ b/src/OpenApi/src/Transformers/IOpenApiSchemaTransformer.cs
@@ -1,8 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.OpenApi.Models;
-
namespace Microsoft.AspNetCore.OpenApi;
///
diff --git a/src/OpenApi/src/Transformers/OpenApiDocumentTransformerContext.cs b/src/OpenApi/src/Transformers/OpenApiDocumentTransformerContext.cs
index 4445d8591b63..ee2cf766db4b 100644
--- a/src/OpenApi/src/Transformers/OpenApiDocumentTransformerContext.cs
+++ b/src/OpenApi/src/Transformers/OpenApiDocumentTransformerContext.cs
@@ -4,7 +4,6 @@
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Transformers/OpenApiOperationTransformerContext.cs b/src/OpenApi/src/Transformers/OpenApiOperationTransformerContext.cs
index 8e070cc2c92f..82a5be551a5d 100644
--- a/src/OpenApi/src/Transformers/OpenApiOperationTransformerContext.cs
+++ b/src/OpenApi/src/Transformers/OpenApiOperationTransformerContext.cs
@@ -3,7 +3,6 @@
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Transformers/OpenApiSchemaTransformerContext.cs b/src/OpenApi/src/Transformers/OpenApiSchemaTransformerContext.cs
index 4d8abc8d911e..a0553342cf2c 100644
--- a/src/OpenApi/src/Transformers/OpenApiSchemaTransformerContext.cs
+++ b/src/OpenApi/src/Transformers/OpenApiSchemaTransformerContext.cs
@@ -4,7 +4,6 @@
using System.Text.Json.Serialization.Metadata;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Transformers/TypeBasedOpenApiDocumentTransformer.cs b/src/OpenApi/src/Transformers/TypeBasedOpenApiDocumentTransformer.cs
index d950ae5c4ce0..990f500d6429 100644
--- a/src/OpenApi/src/Transformers/TypeBasedOpenApiDocumentTransformer.cs
+++ b/src/OpenApi/src/Transformers/TypeBasedOpenApiDocumentTransformer.cs
@@ -4,7 +4,6 @@
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Transformers/TypeBasedOpenApiOperationTransformer.cs b/src/OpenApi/src/Transformers/TypeBasedOpenApiOperationTransformer.cs
index a8c8a11e526b..d0b32c8ac455 100644
--- a/src/OpenApi/src/Transformers/TypeBasedOpenApiOperationTransformer.cs
+++ b/src/OpenApi/src/Transformers/TypeBasedOpenApiOperationTransformer.cs
@@ -4,7 +4,6 @@
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/src/Transformers/TypeBasedOpenApiSchemaTransformer.cs b/src/OpenApi/src/Transformers/TypeBasedOpenApiSchemaTransformer.cs
index 29c0c3be6e46..564aad2d758b 100644
--- a/src/OpenApi/src/Transformers/TypeBasedOpenApiSchemaTransformer.cs
+++ b/src/OpenApi/src/Transformers/TypeBasedOpenApiSchemaTransformer.cs
@@ -4,7 +4,6 @@
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi;
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests.csproj b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests.csproj
index 3cd2cc963d3e..61a22595ac54 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests.csproj
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests.csproj
@@ -33,4 +33,8 @@
+
+
+
+
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/SnapshotTestHelper.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/SnapshotTestHelper.cs
index c2d09bdb5971..6c4febb6beec 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/SnapshotTestHelper.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/SnapshotTestHelper.cs
@@ -15,7 +15,6 @@
using Microsoft.CodeAnalysis.Text;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests;
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/AddOpenApiTests.CanInterceptAddOpenApi#OpenApiXmlCommentSupport.generated.verified.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/AddOpenApiTests.CanInterceptAddOpenApi#OpenApiXmlCommentSupport.generated.verified.cs
index 6d70b459e927..0f7dc96817c8 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/AddOpenApiTests.CanInterceptAddOpenApi#OpenApiXmlCommentSupport.generated.verified.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/AddOpenApiTests.CanInterceptAddOpenApi#OpenApiXmlCommentSupport.generated.verified.cs
@@ -40,9 +40,7 @@ namespace Microsoft.AspNetCore.OpenApi.Generated
using Microsoft.AspNetCore.OpenApi;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.DependencyInjection;
- using Microsoft.OpenApi.Models;
- using Microsoft.OpenApi.Models.Interfaces;
- using Microsoft.OpenApi.Models.References;
+ using Microsoft.OpenApi;
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.AspNetCore.OpenApi.SourceGenerators, Version=42.42.42.42, Culture=neutral, PublicKeyToken=adb9793829ddae60", "42.42.42.42")]
file record XmlComment(
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/AdditionalTextsTests.CanHandleXmlForSchemasInAdditionalTexts#OpenApiXmlCommentSupport.generated.verified.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/AdditionalTextsTests.CanHandleXmlForSchemasInAdditionalTexts#OpenApiXmlCommentSupport.generated.verified.cs
index 5853730c4ce7..10b09abc3d01 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/AdditionalTextsTests.CanHandleXmlForSchemasInAdditionalTexts#OpenApiXmlCommentSupport.generated.verified.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/AdditionalTextsTests.CanHandleXmlForSchemasInAdditionalTexts#OpenApiXmlCommentSupport.generated.verified.cs
@@ -40,9 +40,7 @@ namespace Microsoft.AspNetCore.OpenApi.Generated
using Microsoft.AspNetCore.OpenApi;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.DependencyInjection;
- using Microsoft.OpenApi.Models;
- using Microsoft.OpenApi.Models.Interfaces;
- using Microsoft.OpenApi.Models.References;
+ using Microsoft.OpenApi;
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.AspNetCore.OpenApi.SourceGenerators, Version=42.42.42.42, Culture=neutral, PublicKeyToken=adb9793829ddae60", "42.42.42.42")]
file record XmlComment(
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/CompletenessTests.SupportsAllXmlTagsOnSchemas#OpenApiXmlCommentSupport.generated.verified.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/CompletenessTests.SupportsAllXmlTagsOnSchemas#OpenApiXmlCommentSupport.generated.verified.cs
index 5012ebb84426..4e6a566bb894 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/CompletenessTests.SupportsAllXmlTagsOnSchemas#OpenApiXmlCommentSupport.generated.verified.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/CompletenessTests.SupportsAllXmlTagsOnSchemas#OpenApiXmlCommentSupport.generated.verified.cs
@@ -40,9 +40,7 @@ namespace Microsoft.AspNetCore.OpenApi.Generated
using Microsoft.AspNetCore.OpenApi;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.DependencyInjection;
- using Microsoft.OpenApi.Models;
- using Microsoft.OpenApi.Models.Interfaces;
- using Microsoft.OpenApi.Models.References;
+ using Microsoft.OpenApi;
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.AspNetCore.OpenApi.SourceGenerators, Version=42.42.42.42, Culture=neutral, PublicKeyToken=adb9793829ddae60", "42.42.42.42")]
file record XmlComment(
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/OperationTests.SupportsXmlCommentsOnOperationsFromControllers#OpenApiXmlCommentSupport.generated.verified.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/OperationTests.SupportsXmlCommentsOnOperationsFromControllers#OpenApiXmlCommentSupport.generated.verified.cs
index dbeeaecad381..76e202554e42 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/OperationTests.SupportsXmlCommentsOnOperationsFromControllers#OpenApiXmlCommentSupport.generated.verified.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/OperationTests.SupportsXmlCommentsOnOperationsFromControllers#OpenApiXmlCommentSupport.generated.verified.cs
@@ -40,9 +40,7 @@ namespace Microsoft.AspNetCore.OpenApi.Generated
using Microsoft.AspNetCore.OpenApi;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.DependencyInjection;
- using Microsoft.OpenApi.Models;
- using Microsoft.OpenApi.Models.Interfaces;
- using Microsoft.OpenApi.Models.References;
+ using Microsoft.OpenApi;
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.AspNetCore.OpenApi.SourceGenerators, Version=42.42.42.42, Culture=neutral, PublicKeyToken=adb9793829ddae60", "42.42.42.42")]
file record XmlComment(
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/OperationTests.SupportsXmlCommentsOnOperationsFromMinimalApis#OpenApiXmlCommentSupport.generated.verified.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/OperationTests.SupportsXmlCommentsOnOperationsFromMinimalApis#OpenApiXmlCommentSupport.generated.verified.cs
index a59c1654ffb1..dbce7f0223bf 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/OperationTests.SupportsXmlCommentsOnOperationsFromMinimalApis#OpenApiXmlCommentSupport.generated.verified.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/OperationTests.SupportsXmlCommentsOnOperationsFromMinimalApis#OpenApiXmlCommentSupport.generated.verified.cs
@@ -40,9 +40,7 @@ namespace Microsoft.AspNetCore.OpenApi.Generated
using Microsoft.AspNetCore.OpenApi;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.DependencyInjection;
- using Microsoft.OpenApi.Models;
- using Microsoft.OpenApi.Models.Interfaces;
- using Microsoft.OpenApi.Models.References;
+ using Microsoft.OpenApi;
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.AspNetCore.OpenApi.SourceGenerators, Version=42.42.42.42, Culture=neutral, PublicKeyToken=adb9793829ddae60", "42.42.42.42")]
file record XmlComment(
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/SchemaTests.SupportsXmlCommentsOnSchemas#OpenApiXmlCommentSupport.generated.verified.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/SchemaTests.SupportsXmlCommentsOnSchemas#OpenApiXmlCommentSupport.generated.verified.cs
index dd6515efdb21..915b30278e70 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/SchemaTests.SupportsXmlCommentsOnSchemas#OpenApiXmlCommentSupport.generated.verified.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.SourceGenerators.Tests/snapshots/SchemaTests.SupportsXmlCommentsOnSchemas#OpenApiXmlCommentSupport.generated.verified.cs
@@ -40,9 +40,7 @@ namespace Microsoft.AspNetCore.OpenApi.Generated
using Microsoft.AspNetCore.OpenApi;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.Extensions.DependencyInjection;
- using Microsoft.OpenApi.Models;
- using Microsoft.OpenApi.Models.Interfaces;
- using Microsoft.OpenApi.Models.References;
+ using Microsoft.OpenApi;
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.AspNetCore.OpenApi.SourceGenerators, Version=42.42.42.42, Culture=neutral, PublicKeyToken=adb9793829ddae60", "42.42.42.42")]
file record XmlComment(
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiEndpointRouteBuilderExtensionsTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiEndpointRouteBuilderExtensionsTests.cs
index c3cccd690850..1df8c8647ba5 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiEndpointRouteBuilderExtensionsTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiEndpointRouteBuilderExtensionsTests.cs
@@ -10,7 +10,6 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.OpenApi;
-using Microsoft.OpenApi.Models;
using Microsoft.OpenApi.Reader;
using System.Text;
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiRouteHandlerBuilderExtensionTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiRouteHandlerBuilderExtensionTests.cs
index f660f6557121..7a518238d616 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiRouteHandlerBuilderExtensionTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiRouteHandlerBuilderExtensionTests.cs
@@ -6,7 +6,6 @@
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
-using Microsoft.OpenApi.Models;
using static Microsoft.AspNetCore.OpenApi.Tests.OpenApiOperationGeneratorTests;
namespace Microsoft.AspNetCore.OpenApi.Tests;
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiServiceCollectionExtensionsTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiServiceCollectionExtensionsTests.cs
index 3faeb8f1de0e..5c697ef3c616 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiServiceCollectionExtensionsTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Extensions/OpenApiServiceCollectionExtensionsTests.cs
@@ -8,7 +8,6 @@
using Microsoft.Extensions.Hosting.Internal;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi;
-using Microsoft.OpenApi.Models;
public class OpenApiServiceCollectionExtensions
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/OpenApiDocumentConcurrentRequestTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/OpenApiDocumentConcurrentRequestTests.cs
index 587d591b003c..07ac45f0a520 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/OpenApiDocumentConcurrentRequestTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/OpenApiDocumentConcurrentRequestTests.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System.Net;
-using System.Net.Http;
using Microsoft.AspNetCore.InternalTesting;
namespace Microsoft.AspNetCore.OpenApi.Tests.Integration;
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/OpenApiDocumentIntegrationTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/OpenApiDocumentIntegrationTests.cs
index 797b295c25a0..95959eb526d0 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/OpenApiDocumentIntegrationTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/OpenApiDocumentIntegrationTests.cs
@@ -5,8 +5,6 @@
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.OpenApi;
-using Microsoft.OpenApi.Extensions;
-using System.Text.RegularExpressions;
[UsesVerify]
public sealed class OpenApiDocumentIntegrationTests(SampleAppFixture fixture) : IClassFixture
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_0/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_0/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt
index d512ac884eb9..788ea787fa14 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_0/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_0/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt
@@ -547,7 +547,9 @@
"parent": {
"$ref": "#/components/schemas/Category"
},
- "tags": { }
+ "tags": {
+ "$ref": "#/components/schemas/Category/properties/parent/properties/tags"
+ }
}
},
"ChildObject": {
@@ -579,14 +581,18 @@
},
"seq2": {
"type": "array",
- "items": { }
+ "items": {
+ "$ref": "#/components/schemas/ContainerType/properties/seq1/items"
+ }
}
}
},
"Item": {
"type": "object",
"properties": {
- "name": { },
+ "name": {
+ "$ref": "#/components/schemas/Root/properties/item1/properties/name"
+ },
"value": {
"type": "integer",
"format": "int32"
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_1/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_1/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt
index 705e2527a13d..326da7fb0fb7 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_1/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_1/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt
@@ -547,7 +547,9 @@
"parent": {
"$ref": "#/components/schemas/Category"
},
- "tags": { }
+ "tags": {
+ "$ref": "#/components/schemas/Category/properties/parent/properties/tags"
+ }
}
},
"ChildObject": {
@@ -579,14 +581,18 @@
},
"seq2": {
"type": "array",
- "items": { }
+ "items": {
+ "$ref": "#/components/schemas/ContainerType/properties/seq1/items"
+ }
}
}
},
"Item": {
"type": "object",
"properties": {
- "name": { },
+ "name": {
+ "$ref": "#/components/schemas/Root/properties/item1/properties/name"
+ },
"value": {
"type": "integer",
"format": "int32"
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Microsoft.AspNetCore.OpenApi.Tests.csproj b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Microsoft.AspNetCore.OpenApi.Tests.csproj
index c6a84055d2f3..96a5342b6407 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Microsoft.AspNetCore.OpenApi.Tests.csproj
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Microsoft.AspNetCore.OpenApi.Tests.csproj
@@ -40,4 +40,8 @@
Include="$(MSBuildProjectDirectory)\Integration\snapshots\**"
LinkBase="$(MSBuildThisFileDirectory)\Integration\snapshots"/>
+
+
+
+
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/CreateSchemaReferenceIdTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/CreateSchemaReferenceIdTests.cs
index f249e323c719..62a184e7a951 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/CreateSchemaReferenceIdTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/CreateSchemaReferenceIdTests.cs
@@ -6,8 +6,6 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.InternalTesting;
using Microsoft.AspNetCore.OpenApi;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.References;
public class CreateSchemaReferenceIdTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentProviderTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentProviderTests.cs
index 16348c1d514d..51fef947ee71 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentProviderTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentProviderTests.cs
@@ -5,7 +5,6 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi;
-using Microsoft.OpenApi.Models;
using static Microsoft.AspNetCore.OpenApi.Tests.OpenApiOperationGeneratorTests;
public class OpenApiDocumentProviderTests : OpenApiDocumentServiceTestBase
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Operations.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Operations.cs
index 7ba82cba22ce..428c94d03fbc 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Operations.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Operations.cs
@@ -5,9 +5,7 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.OpenApi;
using Microsoft.AspNetCore.Routing;
-using Microsoft.OpenApi.Models;
public partial class OpenApiDocumentServiceTests
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Parameters.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Parameters.cs
index ec7d9f8cc5d6..faa002fb973f 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Parameters.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Parameters.cs
@@ -6,7 +6,6 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding;
-using Microsoft.OpenApi.Models;
public partial class OpenApiDocumentServiceTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.RequestBody.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.RequestBody.cs
index cd4328ef1712..5601f9b1d12d 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.RequestBody.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.RequestBody.cs
@@ -7,7 +7,6 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.InternalTesting;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.OpenApi.Models;
public partial class OpenApiDocumentServiceTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Responses.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Responses.cs
index a33f2220d33f..01f7ddff1df0 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Responses.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Responses.cs
@@ -4,7 +4,6 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.OpenApi.Models;
public partial class OpenApiDocumentServiceTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Servers.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Servers.cs
index 1bc247c95ad4..967e84380d9d 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Servers.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentService/OpenApiDocumentServiceTests.Servers.cs
@@ -6,7 +6,6 @@
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting.Internal;
-using Microsoft.Extensions.Options;
using Moq;
public partial class OpenApiDocumentServiceTests
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentServiceTestsBase.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentServiceTestsBase.cs
index aa2246385b31..7eb820764ece 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentServiceTestsBase.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentServiceTestsBase.cs
@@ -21,7 +21,6 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Microsoft.Net.Http.Headers;
-using Microsoft.OpenApi.Models;
using Moq;
using static Microsoft.AspNetCore.OpenApi.Tests.OpenApiOperationGeneratorTests;
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiGeneratorTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiGeneratorTests.cs
index bac1c7869c66..3dbf13d3995f 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiGeneratorTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiGeneratorTests.cs
@@ -15,7 +15,6 @@
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Primitives;
-using Microsoft.OpenApi.Models;
namespace Microsoft.AspNetCore.OpenApi.Tests;
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.ParameterSchemas.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.ParameterSchemas.cs
index d2dae5f253aa..7929b27f0eca 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.ParameterSchemas.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.ParameterSchemas.cs
@@ -14,8 +14,6 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.References;
public partial class OpenApiSchemaServiceTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.PolymorphicSchemas.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.PolymorphicSchemas.cs
index ab21291453ab..efe7da599f0f 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.PolymorphicSchemas.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.PolymorphicSchemas.cs
@@ -3,9 +3,6 @@
using System.Net.Http;
using Microsoft.AspNetCore.Builder;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.References;
public partial class OpenApiSchemaServiceTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.RequestBodySchemas.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.RequestBodySchemas.cs
index 5eb02fb12744..bb7181154b14 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.RequestBodySchemas.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.RequestBodySchemas.cs
@@ -10,9 +10,6 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.References;
public partial class OpenApiSchemaServiceTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.ResponseSchemas.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.ResponseSchemas.cs
index ac92e52bce02..cabbd30d0c08 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.ResponseSchemas.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiSchemaService/OpenApiSchemaService.ResponseSchemas.cs
@@ -7,8 +7,6 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
public partial class OpenApiSchemaServiceTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/CustomSchemaTransformerTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/CustomSchemaTransformerTests.cs
index aff3182bd2ea..1de9451beec0 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/CustomSchemaTransformerTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/CustomSchemaTransformerTests.cs
@@ -9,9 +9,6 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.References;
public class CustomSchemaTransformerTests : OpenApiDocumentServiceTestBase
{
@@ -33,7 +30,7 @@ public async Task CustomSchemaTransformer_CanInsertSchemaIntoDocumentFromOperati
operation.Responses["500"] = new OpenApiResponse
{
Description = "Error",
- Content = new()
+ Content = new Dictionary()
{
["application/problem+json"] = new OpenApiMediaType
{
@@ -100,7 +97,7 @@ public async Task GetOrCreateSchema_AddsSchemasForMultipleResponseTypes()
operation.Responses["200"] = new OpenApiResponse
{
Description = "Success",
- Content = new()
+ Content = new Dictionary()
{
["application/json"] = new OpenApiMediaType
{
@@ -112,7 +109,7 @@ public async Task GetOrCreateSchema_AddsSchemasForMultipleResponseTypes()
operation.Responses["400"] = new OpenApiResponse
{
Description = "Bad Request",
- Content = new()
+ Content = new Dictionary()
{
["application/problem+json"] = new OpenApiMediaType
{
@@ -158,7 +155,7 @@ public async Task GetOrCreateSchema_CanBeUsedInSchemaTransformer()
context.Document.AddComponent("TriangleExample", exampleSchema);
// Add a reference to the example in the shape schema
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["x-example-component"] = new JsonNodeExtension("#/components/schemas/TriangleExample");
schema.Description = "A shape with an example reference";
}
@@ -263,7 +260,7 @@ public async Task GetOrCreateSchema_WorksWithNestedTypes()
["200"] = new OpenApiResponse
{
Description = "Success",
- Content = new()
+ Content = new Dictionary()
{
["application/json"] = new OpenApiMediaType
{
@@ -321,7 +318,7 @@ public async Task GetOrCreateSchemaAsync_AppliesOtherSchemaTransformers()
{
if (context.JsonTypeInfo.Type == typeof(Product))
{
- schema.Required ??= [];
+ schema.Required ??= new HashSet();
schema.Required.Add("name");
schema.Required.Add("price");
transformerApplied = true;
@@ -349,7 +346,7 @@ public async Task GetOrCreateSchemaAsync_AppliesOtherSchemaTransformers()
operation.Responses["200"] = new OpenApiResponse
{
Description = "A product",
- Content = new()
+ Content = new Dictionary()
{
["application/json"] = new OpenApiMediaType
{
@@ -417,7 +414,7 @@ public async Task GetOrCreateSchemaAsync_HandlesConcurrentRequests()
operation.Responses["200"] = new OpenApiResponse
{
Description = "Concurrent schema generation test",
- Content = new()
+ Content = new Dictionary()
{
["application/json"] = new OpenApiMediaType
{
@@ -470,7 +467,7 @@ public async Task GetOrCreateSchemaAsync_RespectsJsonSerializerOptions()
operation.Responses["200"] = new OpenApiResponse
{
Description = "User with custom JSON options",
- Content = new()
+ Content = new Dictionary()
{
["application/json"] = new OpenApiMediaType
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/DocumentTransformerTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/DocumentTransformerTests.cs
index 27741a0afc4d..c5f599e040d4 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/DocumentTransformerTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/DocumentTransformerTests.cs
@@ -5,7 +5,6 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
public class DocumentTransformerTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/Implementations/OpenApiSchemaReferenceTransformerTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/Implementations/OpenApiSchemaReferenceTransformerTests.cs
index 603007c0a083..b3c5ec49c7e8 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/Implementations/OpenApiSchemaReferenceTransformerTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/Implementations/OpenApiSchemaReferenceTransformerTests.cs
@@ -8,10 +8,6 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.References;
-using Microsoft.OpenApi.Writers;
public class OpenApiSchemaReferenceTransformerTests : OpenApiDocumentServiceTestBase
{
@@ -286,7 +282,7 @@ public async Task TypeModifiedWithSchemaTransformerMapsToDifferentReferenceId()
{
if (context.JsonTypeInfo.Type == typeof(Todo) && context.ParameterDescription is not null)
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["x-my-extension"] = new JsonNodeExtension(context.ParameterDescription.Name);
}
return Task.CompletedTask;
@@ -712,18 +708,15 @@ await VerifyOpenApiDocument(builder, document =>
// Assert items are arrays of strings
Assert.Equal(JsonSchemaType.Array, seq1Schema.Items.Type);
- // Todo: See https://github.com/microsoft/OpenAPI.NET/issues/2062
- // Assert.Equal(JsonSchemaType.Array, seq2Schema.Items.Type);
+ Assert.Equal(JsonSchemaType.Array, seq2Schema.Items.Type);
// Since both Seq1 and Seq2 are the same type (List>),
// they should reference the same schema structure
- // Todo: See https://github.com/microsoft/OpenAPI.NET/issues/2062
- // Assert.Equal(seq1Schema.Items.Type, seq2Schema.Items.Type);
+ Assert.Equal(seq1Schema.Items.Type, seq2Schema.Items.Type);
// Verify the inner arrays contain strings
Assert.Equal(JsonSchemaType.String, seq1Schema.Items.Items.Type);
- // Todo: See https://github.com/microsoft/OpenAPI.NET/issues/2062
- // Assert.Equal(JsonSchemaType.String, seq2Schema.Items.Items.Type);
+ Assert.Equal(JsonSchemaType.String, seq2Schema.Items.Items.Type);
Assert.Equal(["ContainerType"], document.Components.Schemas.Keys);
});
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/OpenApiOptionsTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/OpenApiOptionsTests.cs
index 283d39c3c049..5a55dbfd35d5 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/OpenApiOptionsTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/OpenApiOptionsTests.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.AspNetCore.OpenApi;
-using Microsoft.OpenApi.Models;
public class OpenApiOptionsTests
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/OperationTransformerTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/OperationTransformerTests.cs
index f172ac364f55..a67d4882dffc 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/OperationTransformerTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/OperationTransformerTests.cs
@@ -5,7 +5,6 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Models;
public class OperationTransformerTests : OpenApiDocumentServiceTestBase
{
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/SchemaTransformerTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/SchemaTransformerTests.cs
index bed6a02e50f2..4c69ebf1e007 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/SchemaTransformerTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/SchemaTransformerTests.cs
@@ -8,9 +8,6 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
-using Microsoft.OpenApi.Models.References;
public class SchemaTransformerTests : OpenApiDocumentServiceTestBase
{
@@ -155,14 +152,14 @@ public async Task SchemaTransformer_RunsInRegisteredOrder()
var options = new OpenApiOptions();
options.AddSchemaTransformer((schema, context, cancellationToken) =>
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["x-my-extension"] = new JsonNodeExtension("1");
schema.Format = "1";
return Task.CompletedTask;
});
options.AddSchemaTransformer((schema, context, cancellationToken) =>
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
Assert.Equal("1", ((JsonNodeExtension)schema.Extensions["x-my-extension"]).Node.GetValue());
schema.Extensions["x-my-extension"] = new JsonNodeExtension("2");
return Task.CompletedTask;
@@ -189,7 +186,7 @@ public async Task SchemaTransformer_OnTypeModifiesBothRequestAndResponse()
{
if (context.JsonTypeInfo.Type == typeof(Todo))
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["x-my-extension"] = new JsonNodeExtension("1");
}
return Task.CompletedTask;
@@ -499,7 +496,7 @@ public async Task SchemaTransformer_CanModifyPolymorphicChildSchemas()
{
if (context.JsonTypeInfo.Type == typeof(Triangle))
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["x-my-extension"] = new JsonNodeExtension("this-is-a-triangle");
}
return Task.CompletedTask;
@@ -568,7 +565,7 @@ public async Task SchemaTransformer_CanModifyListOfPolymorphicTypes()
var options = new OpenApiOptions();
options.AddSchemaTransformer((schema, context, cancellationToken) =>
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
if (context.JsonTypeInfo.Type == typeof(Triangle))
{
schema.Extensions["x-my-extension"] = new JsonNodeExtension("this-is-a-triangle");
@@ -610,7 +607,7 @@ public async Task SchemaTransformer_CanModifyPolymorphicTypesInProperties()
var options = new OpenApiOptions();
options.AddSchemaTransformer((schema, context, cancellationToken) =>
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
if (context.JsonTypeInfo.Type == typeof(Triangle))
{
schema.Extensions["x-my-extension"] = new JsonNodeExtension("this-is-a-triangle");
@@ -652,7 +649,7 @@ public async Task SchemaTransformer_CanModifyDeeplyNestedPolymorphicTypesInPrope
var options = new OpenApiOptions();
options.AddSchemaTransformer((schema, context, cancellationToken) =>
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
if (context.JsonTypeInfo.Type == typeof(Triangle))
{
schema.Extensions["x-my-extension"] = new JsonNodeExtension("this-is-a-triangle");
@@ -741,7 +738,7 @@ public async Task SchemaTransformers_CanImplementNotSchemaIndependently()
});
UseNotSchemaTransformer(options, (schema, context, cancellationToken) =>
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["modified-by-not-schema-transformer"] = new JsonNodeExtension(true);
return Task.CompletedTask;
});
@@ -957,7 +954,7 @@ public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext
{
if (context.JsonTypeInfo.Type == typeof(Todo))
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["x-my-extension"] = new JsonNodeExtension("1");
}
return Task.CompletedTask;
@@ -1006,7 +1003,7 @@ private class ActivatedTransformerWithDependency(Dependency dependency) : IOpenA
public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext context, CancellationToken cancellationToken)
{
dependency.TestMethod();
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["x-my-extension"] = new JsonNodeExtension(Dependency.InstantiationCount.ToString(CultureInfo.InvariantCulture));
return Task.CompletedTask;
}
diff --git a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/TypeBasedTransformerLifetimeTests.cs b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/TypeBasedTransformerLifetimeTests.cs
index 8f343a95d51f..3716ddb04dd9 100644
--- a/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/TypeBasedTransformerLifetimeTests.cs
+++ b/src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Transformers/TypeBasedTransformerLifetimeTests.cs
@@ -4,8 +4,6 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.OpenApi;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.OpenApi.Extensions;
-using Microsoft.OpenApi.Models;
public class TypeBasedTransformerLifetimeTests : OpenApiDocumentServiceTestBase
{
@@ -348,7 +346,7 @@ public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext
{
if (context.JsonTypeInfo.Type == typeof(Todo))
{
- schema.Extensions ??= [];
+ schema.Extensions ??= new Dictionary();
schema.Extensions["x-my-extension"] = new JsonNodeExtension("1");
}
return Task.CompletedTask;
diff --git a/src/Tools/GetDocumentInsider/tests/GetDocumentTests.cs b/src/Tools/GetDocumentInsider/tests/GetDocumentTests.cs
index 29a2cddefe1f..712ef8bc1f8c 100644
--- a/src/Tools/GetDocumentInsider/tests/GetDocumentTests.cs
+++ b/src/Tools/GetDocumentInsider/tests/GetDocumentTests.cs
@@ -7,7 +7,6 @@
using System.Reflection;
using System.Runtime.Versioning;
using Microsoft.OpenApi;
-using Microsoft.OpenApi.Models;
namespace Microsoft.Extensions.ApiDescription.Tool.Tests;