protected OpenApiFeature createOpenApiFeature(final String description, final Class<?> resource) { final OpenApiCustomizer customizer = new OpenApiCustomizer(); customizer.setDynamicBasePath(true); final OpenApiFeature feature = new OpenApiFeature(); feature.setDescription(description); feature.setCustomizer(customizer); feature.setScan(false); feature.setUseContextBasedConfig(true); feature.setResourceClasses(Collections.singleton(resource.getName())); return feature; }
@Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof OpenApiFeature) { final OpenApiFeature feature = (OpenApiFeature)bean; if (feature.getCustomizer() == null) { final OpenApiCustomizer customizer = beanFactory.getBean(OpenApiCustomizer.class); feature.setCustomizer(customizer); } } return bean; }
@Override protected OpenApiFeature createOpenApiFeature() { final OpenApiFeature feature = new OpenApiFeature(); feature.setRunAsFilter(runAsFilter); feature.setConfigLocation("/files/openapi-configuration.json"); return feature; } }
protected OpenApiFeature createOpenApiFeature() { final OpenApiFeature feature = new OpenApiFeature(); feature.setRunAsFilter(runAsFilter); feature.setContactName(CONTACT); feature.setTitle(TITLE); feature.setDescription(DESCRIPTION); feature.setLicense(LICENSE); feature.setLicenseUrl(LICENSE_URL); feature.setSecurityDefinitions(Collections.singletonMap(SECURITY_DEFINITION_NAME, new SecurityScheme().type(Type.HTTP))); return feature; }
final Application application = getApplicationOrDefault(server, factory, sfb, bus); String defaultConfigLocation = getConfigLocation(); if (scanKnownConfigLocations && StringUtils.isEmpty(defaultConfigLocation)) { defaultConfigLocation = OpenApiDefaultConfigurationScanner.locateDefaultConfiguration().orElse(null); swaggerProps = getSwaggerProperties(propertiesLocation, bus); if (isScan()) { packages.addAll(scanResourcePackages(sfb)); final OpenAPI oas = new OpenAPI().info(getInfo(swaggerProps)); registerComponents(securityDefinitions).ifPresent(oas::setComponents); .prettyPrint(getOrFallback(isPrettyPrint(), swaggerProps, PRETTY_PRINT_PROPERTY)) .readAllResources(isReadAllResources()) .ignoredRoutes(getIgnoredRoutes()) .filterClass(getOrFallback(getFilterClass(), swaggerProps, FILTER_CLASS_PROPERTY)) .resourceClasses(getResourceClasses()) .resourcePackages(getOrFallback(packages, swaggerProps, RESOURCE_PACKAGE_PROPERTY)); final Properties userProperties = getUserProperties( context .getOpenApiConfiguration() .getUserDefinedOptions()); registerOpenApiResources(sfb, packages, context.getOpenApiConfiguration()); registerSwaggerUiResources(sfb, combine(swaggerProps, userProperties), factory, bus); registerServletConfigProvider(factory);
/** * The info will be used only if there is no @OpenAPIDefinition annotation is present. */ private Info getInfo(final Properties properties) { final Info info = new Info() .title(getOrFallback(getTitle(), properties, TITLE_PROPERTY)) .version(getOrFallback(getVersion(), properties, VERSION_PROPERTY)) .description(getOrFallback(getDescription(), properties, DESCRIPTION_PROPERTY)) .termsOfService(getOrFallback(getTermsOfServiceUrl(), properties, TERMS_URL_PROPERTY)) .contact(new Contact() .name(getOrFallback(getContactName(), properties, CONTACT_PROPERTY)) .email(getContactEmail()) .url(getContactUrl())) .license(new License() .name(getOrFallback(getLicense(), properties, LICENSE_PROPERTY)) .url(getOrFallback(getLicenseUrl(), properties, LICENSE_URL_PROPERTY))); if (info.getLicense().getName() == null) { info.getLicense().setName(DEFAULT_LICENSE_VALUE); } if (info.getLicense().getUrl() == null && DEFAULT_LICENSE_VALUE.equals(info.getLicense().getName())) { info.getLicense().setUrl(DEFAULT_LICENSE_URL); } return info; }
@Override protected OpenApiFeature createOpenApiFeature() { final OpenApiCustomizer customizer = new OpenApiCustomizer(); customizer.setDynamicBasePath(true); final OpenApiFeature feature = super.createOpenApiFeature(); feature.setCustomizer(customizer); feature.setScan(false); feature.setResourcePackages(Collections.singleton(getClass().getPackage().getName())); return feature; } }
@Override protected OpenApiFeature createOpenApiFeature() { final OpenApiFeature feature = new OpenApiFeature(); feature.setRunAsFilter(runAsFilter); feature.setPropertiesLocation("/files/swagger.properties"); feature.setSecurityDefinitions(Collections.singletonMap(SECURITY_DEFINITION_NAME, new SecurityScheme().type(Type.HTTP))); return feature; } }
protected void registerOpenApiResources( final JAXRSServiceFactoryBean sfb, final Set<String> packages, final OpenAPIConfiguration config) { if (customizer != null) { customizer.setClassResourceInfos(sfb.getClassResourceInfo()); } sfb.setResourceClassesFromBeans(Arrays.asList( createOpenApiResource() .openApiConfiguration(config) .configLocation(configLocation) .resourcePackages(packages))); }
final Application application = getApplicationOrDefault(server, factory, sfb, bus); String defaultConfigLocation = getConfigLocation(); if (scanKnownConfigLocations && StringUtils.isEmpty(defaultConfigLocation)) { defaultConfigLocation = OpenApiDefaultConfigurationScanner.locateDefaultConfiguration().orElse(null); swaggerProps = getSwaggerProperties(propertiesLocation, bus); if (isScan()) { packages.addAll(scanResourcePackages(sfb)); final OpenAPI oas = new OpenAPI().info(getInfo(swaggerProps)); registerComponents(securityDefinitions).ifPresent(oas::setComponents); .prettyPrint(getOrFallback(isPrettyPrint(), swaggerProps, PRETTY_PRINT_PROPERTY)) .readAllResources(isReadAllResources()) .ignoredRoutes(getIgnoredRoutes()) .filterClass(getOrFallback(getFilterClass(), swaggerProps, FILTER_CLASS_PROPERTY)) .resourceClasses(getResourceClasses()) .resourcePackages(getOrFallback(packages, swaggerProps, RESOURCE_PACKAGE_PROPERTY)); final Properties userProperties = getUserProperties( context .getOpenApiConfiguration() .getUserDefinedOptions()); registerOpenApiResources(sfb, packages, context.getOpenApiConfiguration()); registerSwaggerUiResources(sfb, combine(swaggerProps, userProperties), factory, bus); registerServletConfigProvider(factory);
/** * The info will be used only if there is no @OpenAPIDefinition annotation is present. */ private Info getInfo(final Properties properties) { final Info info = new Info() .title(getOrFallback(getTitle(), properties, TITLE_PROPERTY)) .version(getOrFallback(getVersion(), properties, VERSION_PROPERTY)) .description(getOrFallback(getDescription(), properties, DESCRIPTION_PROPERTY)) .termsOfService(getOrFallback(getTermsOfServiceUrl(), properties, TERMS_URL_PROPERTY)) .contact(new Contact() .name(getOrFallback(getContactName(), properties, CONTACT_PROPERTY)) .email(getContactEmail()) .url(getContactUrl())) .license(new License() .name(getOrFallback(getLicense(), properties, LICENSE_PROPERTY)) .url(getOrFallback(getLicenseUrl(), properties, LICENSE_URL_PROPERTY))); if (info.getLicense().getName() == null) { info.getLicense().setName(DEFAULT_LICENSE_VALUE); } if (info.getLicense().getUrl() == null && DEFAULT_LICENSE_VALUE.equals(info.getLicense().getName())) { info.getLicense().setUrl(DEFAULT_LICENSE_URL); } return info; }
@Override protected OpenApiFeature createOpenApiFeature() { final OpenApiCustomizer customizer = new OpenApiCustomizer() { public void customize(io.swagger.v3.oas.models.OpenAPI oas) { super.customize(oas); oas.getInfo().setDescription("Custom Description"); oas.getInfo().getLicense().setName("Custom License"); oas.getComponents().getSecuritySchemes().put("openid", new SecurityScheme()); } }; customizer.setJavadocProvider(new JavaDocProvider()); customizer.setDynamicBasePath(true); customizer.setReplaceTags(true); final OpenApiFeature feature = super.createOpenApiFeature(); feature.setCustomizer(customizer); feature.setScan(false); feature.setResourcePackages(Collections.singleton(getClass().getPackage().getName())); return feature; } }
protected void registerOpenApiResources( final JAXRSServiceFactoryBean sfb, final Set<String> packages, final OpenAPIConfiguration config) { if (customizer != null) { customizer.setClassResourceInfos(sfb.getClassResourceInfo()); } sfb.setResourceClassesFromBeans(Arrays.asList( createOpenApiResource() .openApiConfiguration(config) .configLocation(configLocation) .resourcePackages(packages))); }