Skip to content

Commit 42a2e4b

Browse files
committed
feat(openapi32): support OpenAPI 3.2
1 parent aab91a3 commit 42a2e4b

4 files changed

Lines changed: 7 additions & 1 deletion

File tree

src/OpenAPI.WebApiGenerator/CodeGeneration/SchemaGenerator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ internal static SchemaGenerator For(
3838
Corvus.Json.CodeGeneration.OpenApi30.VocabularyAnalyser.DefaultVocabulary,
3939
OpenApiSpecVersion.OpenApi3_1 =>
4040
Corvus.Json.CodeGeneration.Draft202012.VocabularyAnalyser.DefaultVocabulary,
41+
OpenApiSpecVersion.OpenApi3_2 =>
42+
Corvus.Json.CodeGeneration.Draft202012.VocabularyAnalyser.DefaultVocabulary,
4143
_ => throw new InvalidOperationException($"OpenAPI specification {openApiSpecVersion} is not supported")
4244
};
4345
var globalOptions =

src/OpenAPI.WebApiGenerator/OpenApi/OpenApiVersionExtensions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ internal static class OpenApiVersionExtensions
1212
OpenApiSpecVersion.OpenApi2_0 => "2.0",
1313
OpenApiSpecVersion.OpenApi3_0 => "3.0",
1414
OpenApiSpecVersion.OpenApi3_1 => "3.1",
15+
OpenApiSpecVersion.OpenApi3_2 => "3.2",
1516
_ => throw new NotSupportedException($"OpenAPI version {Enum.GetName(typeof(OpenApiSpecVersion), version)} not supported")
1617
};
1718

1819
internal static Action<IOpenApiWriter> GetSerializer(this IOpenApiSerializable parameter, OpenApiSpecVersion version) => version switch
1920
{
21+
OpenApiSpecVersion.OpenApi3_2 => parameter.SerializeAsV32,
2022
OpenApiSpecVersion.OpenApi3_1 => parameter.SerializeAsV31,
2123
OpenApiSpecVersion.OpenApi3_0 => parameter.SerializeAsV3,
2224
OpenApiSpecVersion.OpenApi2_0 => parameter.SerializeAsV2,

src/OpenAPI.WebApiGenerator/OpenApi/Visitor/OpenApiVisitor.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public static IOpenApiVisitor V(OpenApiSpecVersion version, OpenApiReference<Ope
1717
OpenApiSpecVersion.OpenApi2_0 => OpenApiV2Visitor.Visit(openApiReference),
1818
OpenApiSpecVersion.OpenApi3_0 => OpenApiV3Visitor.Visit(openApiReference),
1919
OpenApiSpecVersion.OpenApi3_1 => OpenApiV3Visitor.Visit(openApiReference),
20+
OpenApiSpecVersion.OpenApi3_2 => OpenApiV3Visitor.Visit(openApiReference),
2021
_ => throw new InvalidOperationException($"OpenAPI version {version} not supported")
2122
};
2223
}

tests/Example.OpenApi32/appsettings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
"Microsoft.AspNetCore": "Warning"
66
}
77
},
8-
"AllowedHosts": "*"
8+
"AllowedHosts": "*",
9+
"OpenApiSpecificationUri": "https://localhost/api.json"
910
}

0 commit comments

Comments
 (0)