-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
I found this StackOverflow question which wants to create an interface for Color based on the following JSON input:
{
// ...
"definitions": {
"Color": {
"description": "",
"enum": [
0,
1,
2
],
"type": "integer",
"x-enumNames": [
"RED",
"GREEN",
"BLUE"
]
}
}
}The expected result is:
export enum Color {
RED = 0,
GREEN = 1,
BLUE = 2,
}But swaxios 0.1.2 generates:
/* tslint:disable */
/**
* This file was automatically generated by "Swaxios".
* It should not be modified by hand.
*/
export type Color = number;Complete input file:
{
"consumes": [
"application/json"
],
"definitions": {
"Bar": {
"additionalProperties": false,
"properties": {
"A": {
"type": "string"
},
"B": {
"format": "int32",
"type": "integer"
},
"Baz": {
"$ref": "#/definitions/Baz"
},
"C": {
"format": "date-time",
"type": "string"
}
},
"required": [
"B",
"C"
],
"type": "object"
},
"Baz": {
"additionalProperties": false,
"properties": {
"Color": {
"$ref": "#/definitions/Color"
},
"D": {
"format": "decimal",
"type": "number"
}
},
"required": [
"D",
"Color"
],
"type": "object"
},
"Color": {
"description": "",
"enum": [
0,
1,
2
],
"type": "integer",
"x-enumNames": [
"RED",
"GREEN",
"BLUE"
]
}
},
"info": {
"title": "",
"version": ""
},
"parameters": {},
"paths": {
"/api/Foo/GetBar": {
"get": {
"operationId": "Foo_GetBar",
"parameters": [
{
"format": "int32",
"in": "query",
"name": "id",
"required": true,
"type": "integer",
"x-nullable": false
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Bar"
},
"x-nullable": true
}
},
"tags": [
"Foo"
]
}
},
"/api/Foo/GetBarDescriptions": {
"get": {
"operationId": "Foo_GetBarDescriptions",
"parameters": [],
"responses": {
"200": {
"description": "",
"schema": {
"items": {
"type": "string"
},
"type": "array"
},
"x-nullable": true
}
},
"tags": [
"Foo"
]
}
},
"/api/Foo/SetBar": {
"post": {
"operationId": "Foo_SetBar",
"parameters": [
{
"in": "body",
"name": "value",
"required": true,
"schema": {
"$ref": "#/definitions/Bar"
},
"x-nullable": true
}
],
"responses": {
"204": {
"description": ""
}
},
"tags": [
"Foo"
]
}
}
},
"produces": [
"application/json"
],
"responses": {},
"schemes": [],
"securityDefinitions": {},
"swagger": "2.0",
"x-generator": "NSwag v11.14.0.0 (NJsonSchema v9.10.24.0 (Newtonsoft.Json v9.0.0.0))"
}The x-enumNames property is a custom property (indicated by the leading x-) but it seems to be very popular because it has been asked for in many other projects before:
- Suggestion: Support x-enumNames extension Redocly/redoc#234
- How to generate enums along with the int -> string mapping RicoSuter/NSwag#1993
- Question: x-enumNames is not used to display possible string enum values for documentation? bootprint/bootprint-openapi#94
- x-enumNames domaindrivendev/Swashbuckle.WebApi#1287
- v6 annotation: named enumerations json-schema-org/json-schema-spec#57
- Support x-enumNames for integer enums swagger-api/swagger-ui#5272
Doc on enum flag:
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels