-
Notifications
You must be signed in to change notification settings - Fork 9.1k
Description
Components fields name currently has this regex as restrictions: ^[a-zA-Z0-9\.\-_]+$
This was mainly discussed and agreed on in #634.
I found this restriction a little too restrictive. I'd imagine that for the Schemas part of the component, most people will use class names as field names. Allowing the period (.) is good because that allows you to add namespace to class name Namespace.ClassName
.
However, quite a number of languages have generics and APIs can have request body that are of type implementing generics. The current allowed characters make it very difficult to represent class name that is derived from generic type. The most intuitive (I think) way to represent generic class name as string is to use some kind of brackets/parentheses Namespace.GenericClassName(AnotherClassName)
. Of course, one can bypass this by using the allowed underscore or hyphen instead, but that just looks plain ugly.
Should we allow parentheses and/or brackets?
Activity
[-]Components fields name example too restrictive?[/-][+]Components fields name too restrictive?[/+]MikeRalphson commentedon Jan 8, 2018
Only the top-level schema object name must conform to the components key regex.
Is it possible you could do something like
or
and use a
$ref
nested through thecontainer
/namespace
object, e.g.:zdne commentedon Jun 10, 2019
It would be good to be more explicit in the spec as this is confusing restriction for many.