Skip to content

Commit 898c720

Browse files
committed
Upgrade to Microsoft.OpenApi 2.x and support OpenAPI v3.1 (#59480)
* Upgrade to Microsoft.OpenApi 2.x and support OpenAPI v3.1 * Update usage in GetDocumentInsider * Fix packaging and AoT tests * Update AoT test project exemptions * Address feedback * Try ignoring whitespace * Update to 2.0.0-preview.6
1 parent 13d7659 commit 898c720

File tree

61 files changed

+1171
-2712
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+1171
-2712
lines changed

eng/Versions.props

+2-2
Original file line numberDiff line numberDiff line change
@@ -335,8 +335,8 @@
335335
<XunitExtensibilityExecutionVersion>$(XunitVersion)</XunitExtensibilityExecutionVersion>
336336
<XUnitRunnerVisualStudioVersion>2.8.2</XUnitRunnerVisualStudioVersion>
337337
<MicrosoftDataSqlClientVersion>5.2.2</MicrosoftDataSqlClientVersion>
338-
<MicrosoftOpenApiVersion>1.6.17</MicrosoftOpenApiVersion>
339-
<MicrosoftOpenApiReadersVersion>1.6.17</MicrosoftOpenApiReadersVersion>
338+
<MicrosoftOpenApiVersion>2.0.0-preview4</MicrosoftOpenApiVersion>
339+
<MicrosoftOpenApiReadersVersion>2.0.0-preview4</MicrosoftOpenApiReadersVersion>
340340
<!-- dotnet tool versions (see also auto-updated DotnetEfVersion property). -->
341341
<DotnetDumpVersion>6.0.322601</DotnetDumpVersion>
342342
<DotnetServeVersion>1.10.93</DotnetServeVersion>

eng/testing/linker/project.csproj.template

+17
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
<InterceptorsPreviewNamespaces>$(InterceptorsPreviewNamespaces);Microsoft.AspNetCore.Http.Generated</InterceptorsPreviewNamespaces>
1717
<!-- Ensure individual warnings are shown when publishing -->
1818
<TrimmerSingleWarn>false</TrimmerSingleWarn>
19+
<!-- But ignore the single warn files marked below to suppress their known warnings. -->
20+
<NoWarn>$(NoWarn);IL2104;IL3053</NoWarn>
1921
{AdditionalProperties}
2022
</PropertyGroup>
2123

@@ -27,4 +29,19 @@
2729
{AdditionalProjectReferences}
2830
</ItemGroup>
2931

32+
<!-- Single warn the following assemblies, which have known warnings, so the warnings can be suppressed for now.
33+
Remove this (and the above NoWarn IL2104) once https://github.com/microsoft/OpenAPI.NET/issues/1875 is addressed. -->
34+
<Target Name="ConfigureTrimming"
35+
BeforeTargets="PrepareForILLink">
36+
<ItemGroup>
37+
<IlcArg Include="--singlewarnassembly:Microsoft.OpenApi" />
38+
</ItemGroup>
39+
<ItemGroup>
40+
<ManagedAssemblyToLink Condition="'%(Filename)' == 'Microsoft.OpenApi'">
41+
<IsTrimmable>true</IsTrimmable>
42+
<TrimmerSingleWarn>true</TrimmerSingleWarn>
43+
</ManagedAssemblyToLink>
44+
</ItemGroup>
45+
</Target>
46+
3047
</Project>

src/OpenApi/perf/Microbenchmarks/OpenApiSchemaComparerBenchmark.cs

-63
This file was deleted.

src/OpenApi/perf/Microbenchmarks/TransformersBenchmark.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ public void SchemaTransformer_Setup()
104104
{
105105
if (context.JsonTypeInfo.Type == typeof(Todo) && context.ParameterDescription != null)
106106
{
107-
schema.Extensions["x-my-extension"] = new OpenApiString(context.ParameterDescription.Name);
107+
schema.Extensions["x-my-extension"] = new OpenApiAny(context.ParameterDescription.Name);
108108
}
109109
else
110110
{
111-
schema.Extensions["x-my-extension"] = new OpenApiString("response");
111+
schema.Extensions["x-my-extension"] = new OpenApiAny("response");
112112
}
113113
return Task.CompletedTask;
114114
});
@@ -177,11 +177,11 @@ public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext
177177
{
178178
if (context.JsonTypeInfo.Type == typeof(Todo) && context.ParameterDescription != null)
179179
{
180-
schema.Extensions["x-my-extension"] = new OpenApiString(context.ParameterDescription.Name);
180+
schema.Extensions["x-my-extension"] = new OpenApiAny(context.ParameterDescription.Name);
181181
}
182182
else
183183
{
184-
schema.Extensions["x-my-extension"] = new OpenApiString("response");
184+
schema.Extensions["x-my-extension"] = new OpenApiAny("response");
185185
}
186186
return Task.CompletedTask;
187187
}

src/OpenApi/sample/Transformers/AddExternalDocsTransformer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public Task TransformAsync(OpenApiSchema schema, OpenApiSchemaTransformerContext
2929
{
3030
if (Uri.TryCreate(configuration["DocumentationBaseUrl"], UriKind.Absolute, out var baseUri))
3131
{
32-
var url = new Uri(baseUri, $"/api/docs/schemas/{Uri.EscapeDataString(schema.Type)}");
32+
var url = new Uri(baseUri, $"/api/docs/schemas/{Uri.EscapeDataString(schema.Type.ToString()!.ToLowerInvariant())}");
3333

3434
schema.ExternalDocs = new OpenApiExternalDocs
3535
{

src/OpenApi/sample/Transformers/OperationTransformers.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using Microsoft.AspNetCore.OpenApi;
5-
using Microsoft.OpenApi.Any;
65
using Microsoft.OpenApi.Extensions;
76
using Microsoft.OpenApi.Models;
87

@@ -15,7 +14,7 @@ public static OpenApiOptions AddHeader(this OpenApiOptions options, string heade
1514
return options.AddOperationTransformer((operation, context, cancellationToken) =>
1615
{
1716
var schema = OpenApiTypeMapper.MapTypeToOpenApiPrimitiveType(typeof(string));
18-
schema.Default = new OpenApiString(defaultValue);
17+
schema.Default = defaultValue;
1918
operation.Parameters ??= [];
2019
operation.Parameters.Add(new OpenApiParameter
2120
{

src/OpenApi/src/Comparers/ComparerHelpers.cs

-95
This file was deleted.

src/OpenApi/src/Comparers/OpenApiAnyComparer.cs

-117
This file was deleted.

0 commit comments

Comments
 (0)