Skip to content

Commit 9d1417b

Browse files
committed
Add 'x-enumNames' to the OpenAPI schema enum name generation to widen the support of client generators
1 parent c08568d commit 9d1417b

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

src/Dibix.Sdk.CodeGeneration/OpenApi/OpenApiGenerator.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ internal static class OpenApiGenerator
1414
{
1515
private static readonly bool UseRelativeNamespaces = true;
1616
private static readonly string[] ReservedOpenApiHeaders = { "Accept", "Authorization", "Content-Type" };
17+
private static readonly string[] SupportedEnumExtensions = { "x-enum-varnames", "x-enumNames" };
1718
private static readonly OpenApiSchema NullSchema = new OpenApiSchema { Type = "null" };
1819

1920
public static OpenApiDocument Generate(CodeGenerationModel model, ISchemaRegistry schemaRegistry, ILogger logger)
@@ -473,7 +474,11 @@ private static void AppendEnumSchema(OpenApiDocument document, string schemaName
473474
OpenApiArray enumNames = new OpenApiArray();
474475

475476
schema.Description = String.Join("<br/>", enumContract.Members.Select(x => $"{x.ActualValue} = {x.Name}"));
476-
schema.Extensions.Add("x-enum-varnames", enumNames);
477+
478+
foreach (string extensionName in SupportedEnumExtensions)
479+
{
480+
schema.Extensions.Add(extensionName, enumNames);
481+
}
477482

478483
foreach (EnumSchemaMember member in enumContract.Members)
479484
{

tests/Dibix.Sdk.Tests/Resources/CodeGeneration/Endpoints_OpenApi.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,10 @@ components:
518518
- None
519519
- User
520520
- Admin
521+
x-enumNames:
522+
- None
523+
- User
524+
- Admin
521525
InputContract:
522526
required:
523527
- a
@@ -635,6 +639,9 @@ components:
635639
x-enum-varnames:
636640
- Ascending
637641
- Descending
642+
x-enumNames:
643+
- Ascending
644+
- Descending
638645
securitySchemes:
639646
Bearer:
640647
type: http

0 commit comments

Comments
 (0)