Hi All,
Currently we are handling the issue related to swagger parameter default values
while generating the swagger content.
Default value annotation(@DefaultValue) we can provide for PathParam,
QueryParam, MatrixParam, CookieParam, FormParam and HeaderParam.
The query is when to consider default value for swagger parameter.
Solution:1 [parameter value required case]
While generating the swagger content:
1) consider default value(@DefaultValue) if and only the parameter
configured required is false(required=false).
2) If default value(@DefaultValue) is not available then consider JAVA
primitive default values only when the parameter configured required is
false(required=false).
The default values as follows:
Object types --> null
collection for List, Set or SortedSet --> Empty list
primitive types:
int, long --> 0
float, double --> 0.0
boolean --> false etc..
3) When the user not provided value in request(meta-data) and the
parameter is configured with required is true(required=true) then throw
exception by saying that "Invalid parameter".
Solution:2 [General case]
While generating the swagger content:
1) consider default value(@DefaultValue) without checking whether it is
required or not(required=true or required=false)
2) If default value(@DefaultValue) is not available then consider JAVA
primitive default values without checking whether it is required or
not(required=true or required=false)
The default values as follows:
Object types --> null
collection for List, Set or SortedSet --> Empty list
primitive types:
int, long --> 0
float, double --> 0.0
boolean --> false etc..
3) When the user not provided value in request(meta-data) , first it will
check annotated default value field and then it will check JAVA primitive
default values.
Always some default values will be there for parameters and If user not given
any values in request then it will consider the default values presented in
schema content.
Any thoughts on this?
Please suggest which solution is best for handling the swagger parameter
default values. Thank you in advance !
Thanks & Regards
Mahesh Raju Somalaraju
Github(id: maheshrajus)