65
65
import org .springframework .util .CollectionUtils ;
66
66
import org .springframework .validation .BindingResult ;
67
67
import org .springframework .validation .Errors ;
68
- import org .springframework .web .bind .annotation .CookieValue ;
69
68
import org .springframework .web .bind .annotation .PathVariable ;
70
69
import org .springframework .web .bind .annotation .RequestAttribute ;
71
- import org .springframework .web .bind .annotation .RequestHeader ;
72
70
import org .springframework .web .bind .annotation .RequestMethod ;
73
71
import org .springframework .web .bind .annotation .RequestParam ;
74
72
import org .springframework .web .bind .annotation .ValueConstants ;
@@ -245,7 +243,7 @@ public Operation build(HandlerMethod handlerMethod, RequestMethod requestMethod,
245
243
io .swagger .v3 .oas .annotations .Parameter .class );
246
244
247
245
final String pName = methodParameter .getParameterName ();
248
- ParameterInfo parameterInfo = new ParameterInfo (pName , methodParameter );
246
+ ParameterInfo parameterInfo = new ParameterInfo (pName , methodParameter , parameterBuilder );
249
247
250
248
if (parameterDoc == null )
251
249
parameterDoc = parametersDocMap .get (parameterInfo .getpName ());
@@ -412,40 +410,23 @@ public boolean isValidParameter(Parameter parameter) {
412
410
public Parameter buildParams (ParameterInfo parameterInfo , Components components ,
413
411
RequestMethod requestMethod , JsonView jsonView ) {
414
412
MethodParameter methodParameter = parameterInfo .getMethodParameter ();
415
- RequestHeader requestHeader = parameterInfo .getRequestHeader ();
416
- RequestParam requestParam = parameterInfo .getRequestParam ();
417
- PathVariable pathVar = parameterInfo .getPathVar ();
418
- CookieValue cookieValue = parameterInfo .getCookieValue ();
419
-
420
- RequestInfo requestInfo ;
421
-
422
- if (requestHeader != null ) {
423
- requestInfo = new RequestInfo (ParameterIn .HEADER .toString (), parameterInfo .getpName (), requestHeader .required (),
424
- requestHeader .defaultValue ());
425
- return buildParam (parameterInfo , components , requestInfo , jsonView );
426
-
427
- }
428
- else if (requestParam != null && !parameterBuilder .isFile (parameterInfo .getMethodParameter ())) {
429
- requestInfo = new RequestInfo (ParameterIn .QUERY .toString (), parameterInfo .getpName (), requestParam .required () && !methodParameter .isOptional (),
430
- requestParam .defaultValue ());
431
- return buildParam (parameterInfo , components , requestInfo , jsonView );
432
- }
433
- else if (pathVar != null ) {
434
- requestInfo = new RequestInfo (ParameterIn .PATH .toString (), parameterInfo .getpName (), !methodParameter .isOptional (), null );
435
- return buildParam (parameterInfo , components , requestInfo , jsonView );
436
- }
437
- else if (cookieValue != null ) {
438
- requestInfo = new RequestInfo (ParameterIn .COOKIE .toString (), parameterInfo .getpName (), cookieValue .required (),
439
- cookieValue .defaultValue ());
440
- return buildParam (parameterInfo , components , requestInfo , jsonView );
413
+ if (parameterInfo .getParamType () != null ){
414
+ if (!ValueConstants .DEFAULT_NONE .equals (parameterInfo .getDefaultValue ()))
415
+ parameterInfo .setRequired (false );
416
+ else
417
+ parameterInfo .setDefaultValue (null );
418
+ return this .buildParam (parameterInfo , components , jsonView );
441
419
}
442
420
// By default
443
421
DelegatingMethodParameter delegatingMethodParameter = (DelegatingMethodParameter ) methodParameter ;
444
422
if (RequestMethod .GET .equals (requestMethod )
445
423
|| (parameterInfo .getParameterModel () != null && (ParameterIn .PATH .toString ().equals (parameterInfo .getParameterModel ().getIn ())))
446
- || delegatingMethodParameter .isParameterObject ())
447
- return this .buildParam (QUERY_PARAM , components , parameterInfo , !methodParameter .isOptional (), null , jsonView );
448
-
424
+ || delegatingMethodParameter .isParameterObject ()){
425
+ parameterInfo .setRequired (!methodParameter .isOptional ());
426
+ parameterInfo .setParamType (QUERY_PARAM );
427
+ parameterInfo .setDefaultValue (null );
428
+ return this .buildParam (parameterInfo , components , jsonView );
429
+ }
449
430
return null ;
450
431
}
451
432
@@ -454,39 +435,10 @@ else if (cookieValue != null) {
454
435
*
455
436
* @param parameterInfo the parameter info
456
437
* @param components the components
457
- * @param requestInfo the request info
458
- * @param jsonView the json view
459
- * @return the parameter
460
- */
461
- private Parameter buildParam (ParameterInfo parameterInfo , Components components , RequestInfo requestInfo ,
462
- JsonView jsonView ) {
463
- Parameter parameter ;
464
- String pName = parameterInfo .getpName ();
465
- String name = StringUtils .isBlank (requestInfo .value ()) ? pName : requestInfo .value ();
466
- parameterInfo .setpName (name );
467
-
468
- if (!ValueConstants .DEFAULT_NONE .equals (requestInfo .defaultValue ()))
469
- parameter = this .buildParam (requestInfo .type (), components , parameterInfo , false ,
470
- requestInfo .defaultValue (), jsonView );
471
- else
472
- parameter = this .buildParam (requestInfo .type (), components , parameterInfo , requestInfo .required (), null ,
473
- jsonView );
474
- return parameter ;
475
- }
476
-
477
- /**
478
- * Build param parameter.
479
- *
480
- * @param in the in
481
- * @param components the components
482
- * @param parameterInfo the parameter info
483
- * @param required the required
484
- * @param defaultValue the default value
485
438
* @param jsonView the json view
486
439
* @return the parameter
487
440
*/
488
- private Parameter buildParam (String in , Components components , ParameterInfo parameterInfo , Boolean required ,
489
- String defaultValue , JsonView jsonView ) {
441
+ private Parameter buildParam (ParameterInfo parameterInfo , Components components , JsonView jsonView ) {
490
442
Parameter parameter = parameterInfo .getParameterModel ();
491
443
String name = parameterInfo .getpName ();
492
444
@@ -499,19 +451,19 @@ private Parameter buildParam(String in, Components components, ParameterInfo par
499
451
parameter .setName (name );
500
452
501
453
if (StringUtils .isBlank (parameter .getIn ()))
502
- parameter .setIn (in );
454
+ parameter .setIn (parameterInfo . getParamType () );
503
455
504
- if (required != null && parameter .getRequired () == null )
505
- parameter .setRequired (required );
456
+ if (parameter .getRequired () == null )
457
+ parameter .setRequired (parameterInfo . isRequired () );
506
458
507
459
if (containsDeprecatedAnnotation (parameterInfo .getMethodParameter ().getParameterAnnotations ()))
508
460
parameter .setDeprecated (true );
509
461
510
462
if (parameter .getSchema () == null && parameter .getContent () == null ) {
511
463
Schema <?> schema = parameterBuilder .calculateSchema (components , parameterInfo , null ,
512
464
jsonView );
513
- if (defaultValue != null )
514
- schema .setDefault (defaultValue );
465
+ if (parameterInfo . getDefaultValue () != null )
466
+ schema .setDefault (parameterInfo . getDefaultValue () );
515
467
parameter .setSchema (schema );
516
468
}
517
469
return parameter ;
0 commit comments