" e. when generating swagger, generate defalutValue only when explicitly specified."
add another point: for primitive type, even there is no @DefaultValue annotation, should have it's default value 2018-07-26 19:42 GMT+08:00 bismy <[email protected]>: > My suggestions are as follows > 1. Encourage providers to specify required & defalutValue explicitly. > a. when required=true and defaultValue is given, if consumers do not > give a value, use default value; > b. when required=true and defaultValue is not given, if consumers do > not give a value, throw a BadParam exception. > c. when required=false and defaultValue is given, if consumers do not > give a value, use default value; > d. when required=false and defaultValue is not given, give default > values to parameter according to java conventions. e.g. integer is 0 and > object is null. > e. when generating swagger, generate defalutValue only when explicitly > specified. > > > 2. As I know from PR[2], JAX-RS do not have annotations to specify > required, required is always false. This is different from Spring MVC, > which required defaults to true. > a. JAX-RS defaults: required=false and defalutValue not specified > b. Spring MVC default: required=true adefalutValue not specifiednd > > > > > This suggestion seems equals to your Solution 1, the difference seems you > take JAX-RS defaults required=true > > > [1] https://docs.jboss.org/resteasy/2.0.0.GA/javadocs/ > javax/ws/rs/DefaultValue.html > [2] https://issues.apache.org/jira/browse/SCB-709 > [3] Spring MVC: RequestParam annotation: boolean required() default true; > > > ------------------ Original ------------------ > From: "mahesh somalaraju"<[email protected]>; > Date: Thu, Jul 26, 2018 03:23 PM > To: "[email protected]"<[email protected]>; > Cc: "Vinay Murudi"<[email protected]>; "Sukesh A C"<[email protected]>; > "Mohammad Asif Siddiqui"<[email protected]>; > Subject: [DISCUSS] Swagger parameter default values while generating > theschema file > > > > 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) >
