private static Collection<FormParameter> transformUploadDefinitions(final Collection<UploadDefinition> uploadDefinitions) { Collection<FormParameter> parameters = new ArrayList<>(); for (UploadDefinition uploadDefinition : uploadDefinitions) { uploadDefinition.getComponentFields().forEach(uploadFieldDefinition -> parameters.add(new FormParameter() .name(uploadDefinition.getFormat() + "." + uploadFieldDefinition.getName()) .type(uploadFieldDefinition.getType().name().toLowerCase()) .description(uploadDefinition.getFormat() + " " + uploadFieldDefinition.getDisplayName()))); for (int i = 1; i <= (uploadDefinition.isMultipleUpload() ? 3 : 1); i++) { String assetIndex = uploadDefinition.isMultipleUpload() ? Integer.toString(i) : ""; String assetName = uploadDefinition.getFormat() + ".asset" + assetIndex; String assetDisplayName = uploadDefinition.getFormat() + " Asset " + assetIndex; parameters.add(new FormParameter() .name(assetName) .type("file") .description(assetDisplayName)); uploadDefinition.getAssetFields().forEach(uploadFieldDefinition -> parameters.add(new FormParameter() .name(assetName + "." + uploadFieldDefinition.getName()) .type(uploadFieldDefinition.getType().name().toLowerCase()) .description(assetDisplayName + " " + uploadFieldDefinition.getDisplayName()))); } } return parameters; } }
@Override public List<Parameter> extractParameters(List<Annotation> annotations, Type type, Set<Type> typesToSkip, Iterator<SwaggerExtension> chain) { if (shouldIgnoreType(type, typesToSkip)) { // stop the processing chain return Collections.emptyList(); } for (Annotation annotation : annotations) { if (annotation instanceof FormDataParam) { final FormDataParam fd = (FormDataParam) annotation; final Class<?> cls = TypeFactory.defaultInstance().constructType(type).getRawClass(); final Parameter param; if (java.io.InputStream.class.isAssignableFrom(cls)) { param = new FormParameter().type("file").name(fd.value()); } else { FormParameter fp = new FormParameter().name(fd.value()); Property schema = ModelConverters.getInstance().readAsProperty(type); if (schema != null) { fp.setProperty(schema); } param = fp; } return Collections.singletonList(param); } } return super.extractParameters(annotations, type, typesToSkip, chain); }
/** * Build a {@link FormParameter} Swagger object defined by {@link ApiImplicitParam} * to use for documentation. * * @param apiParam The annotation which documents the parameter. * @return The {@link FormParameter} object to be used in {@link Swagger} */ public static FormParameter formParameter(ApiImplicitParam apiParam) { return new FormParameter() .name(apiParam.name()) .description(apiParam.value()) .required(apiParam.required()) .type(apiParam.dataType()); }
pm = new FormParameter().type(param.getType()); break;
.description(FORM_PARAM_VALUE) .required(false) .type(SwaggerDocumentation.DataTypes.DATA_TYPE_STRING);