From 79b8df94519dbf269676f6fb2e85a52ce76b09b3 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 7 Oct 2025 15:27:17 -0400 Subject: [PATCH 1/2] chore: use linq where possible Signed-off-by: Vincent Biret --- .../Reader/V31/OpenApiSchemaDeserializer.cs | 9 +++------ .../Reader/V32/OpenApiSchemaDeserializer.cs | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs b/src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs index 690180fb6..a5f446e7a 100644 --- a/src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs +++ b/src/Microsoft.OpenApi/Reader/V31/OpenApiSchemaDeserializer.cs @@ -197,13 +197,10 @@ internal static partial class OpenApiV31Deserializer { var list = n.CreateSimpleList((n2, p) => n2.GetScalarValue(), doc); JsonSchemaType combinedType = 0; - foreach(var type in list) + foreach(var type in list.Where(static t => t is not null)) { - if (type is not null) - { - var schemaType = type.ToJsonSchemaType(); - combinedType |= schemaType; - } + var schemaType = type.ToJsonSchemaType(); + combinedType |= schemaType; } o.Type = combinedType; } diff --git a/src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs b/src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs index ecc36afee..84f6db105 100644 --- a/src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs +++ b/src/Microsoft.OpenApi/Reader/V32/OpenApiSchemaDeserializer.cs @@ -197,13 +197,10 @@ internal static partial class OpenApiV32Deserializer { var list = n.CreateSimpleList((n2, p) => n2.GetScalarValue(), doc); JsonSchemaType combinedType = 0; - foreach(var type in list) + foreach(var type in list.Where(static t => t is not null)) { - if (type is not null) - { - var schemaType = type.ToJsonSchemaType(); - combinedType |= schemaType; - } + var schemaType = type.ToJsonSchemaType(); + combinedType |= schemaType; } o.Type = combinedType; } From 53face225782b214a651e2ffbff282080100bf38 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 7 Oct 2025 15:29:27 -0400 Subject: [PATCH 2/2] chore: reworks enum version switch Signed-off-by: Vincent Biret --- src/Microsoft.OpenApi/Models/OpenApiPathItem.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.OpenApi/Models/OpenApiPathItem.cs b/src/Microsoft.OpenApi/Models/OpenApiPathItem.cs index 8260863d0..1696388c8 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiPathItem.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiPathItem.cs @@ -170,10 +170,12 @@ internal virtual void SerializeInternal(IOpenApiWriter writer, OpenApiSpecVersio var standardMethodsNames = version switch { - OpenApiSpecVersion.OpenApi2_0 => _standardHttp2MethodsNames, - OpenApiSpecVersion.OpenApi3_0 => _standardHttp30MethodsNames, + OpenApiSpecVersion.OpenApi3_2 => _standardHttp32MethodsNames, OpenApiSpecVersion.OpenApi3_1 => _standardHttp31MethodsNames, - OpenApiSpecVersion.OpenApi3_2 or _ => _standardHttp32MethodsNames, + OpenApiSpecVersion.OpenApi3_0 => _standardHttp30MethodsNames, + // OpenAPI 2.0 supports the fewest methods, so it's the safest default in case of an unknown version. + // This way the library will emit additional methods as extensions instead of producing a potentially invalid spec. + _ => _standardHttp2MethodsNames, }; // operations