Я тестировал это с моим тестовым API, и у меня есть это перечисление:
public enum CustomEnum
{
Text = 1,
Numeric = 2,
Date = 4,
Numeric_Function = 8,
Dropdown_List = 16,
Checkbox = 32
}
https://github.com/heldersepu/Swagger-Net-Test/blob/master/Swagger_Test/Controllers/TestEnumController.cs
, и сгенерированный nswag studio
выглядит следующим образом:
/// <summary>CustomEnum</summary>
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.11.0 (Newtonsoft.Json v11.0.0.0)")]
public enum Value4
{
[System.Runtime.Serialization.EnumMember(Value = @"Text")]
Text = 0,
[System.Runtime.Serialization.EnumMember(Value = @"Numeric")]
Numeric = 1,
[System.Runtime.Serialization.EnumMember(Value = @"Date")]
Date = 2,
[System.Runtime.Serialization.EnumMember(Value = @"Numeric_Function")]
Numeric_Function = 3,
[System.Runtime.Serialization.EnumMember(Value = @"Dropdown_List")]
Dropdown_List = 4,
[System.Runtime.Serialization.EnumMember(Value = @"Checkbox")]
Checkbox = 5,
}
но на чванстве json нет указания значений для перечисления:
http://swagger-net-test.azurewebsites.net/swagger/docs/V1
"/api/TestEnum": {
"get": {
"tags": [
"TestEnum"
],
"summary": "Simple GET echoing the given param",
"operationId": "TestEnum_Get",
"consumes": [],
"produces": [
"application/json",
"text/json",
"text/html"
],
"parameters": [
{
"name": "value",
"in": "query",
"description": "CustomEnum",
"required": true,
"type": "string",
"enum": [
"Text",
"Numeric",
"Date",
"Numeric_Function",
"Dropdown_List",
"Checkbox"
]
}
]
Я думаю это просто отлично работает, и числовые значения c на клиенте не имеют значения.
Здесь вы можете увидеть весь чванство: http://swagger-net-test.azurewebsites.net/swagger/ui/index?filter=TestEnum# / TestEnum / TestEnum_Get