-
-
Notifications
You must be signed in to change notification settings - Fork 539
Enums
Rico Suter edited this page Jun 19, 2018
·
26 revisions
The enums in JSON Schema are only used to validate JSON data. This is why you can only define the enum values but not their names. NJsonSchema adds the x-enumNames
property to the schema so that the enum value names are also available to the consumer. These names are required to generate meaningful code (CSharp or TypeScript).
Also see Integer vs String enumerations
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddJsonOptions(options =>
options.SerializerSettings.Converters.Add(new StringEnumConverter()));
NJsonSchema supports flags enums. Because this feature is not natively supported in JSON Schema, and custom extension properties are required, we recommend to avoid flags enums and use enum arrays instead.
C# schema generator:
- Generates the custom extension
x-flagEnum
for enums with the[Flags]
attribute (boolean, default: false)
C# client generator:
- Generates DTOs with [Flags] attribute when the setting
EnforceFlagEnums
orx-flagEnum
is set totrue