@Override public void process(Object annotation, SwaggerGenerator swaggerGenerator) { SwaggerDefinition definitionAnnotation = (SwaggerDefinition) annotation; Swagger swagger = swaggerGenerator.getSwagger(); swaggerGenerator.setBasePath(definitionAnnotation.basePath()); swagger.setHost(definitionAnnotation.host()); convertConsumes(definitionAnnotation, swagger); convertProduces(definitionAnnotation, swagger); convertSchemes(definitionAnnotation, swagger); convertTags(definitionAnnotation, swagger); convertInfo(definitionAnnotation.info(), swagger); swagger.setExternalDocs(convertExternalDocs(definitionAnnotation.externalDocs())); }
private Map<String, Tag> scanClasspathForTags() { Map<String, Tag> tags = new HashMap<>(); for (Class<?> aClass: new Reflections("").getTypesAnnotatedWith(SwaggerDefinition.class)) { SwaggerDefinition swaggerDefinition = AnnotationUtils.findAnnotation(aClass, SwaggerDefinition.class); for (io.swagger.annotations.Tag tag : swaggerDefinition.tags()) { String tagName = tag.name(); if (!tagName.isEmpty()) { tags.put(tag.name(), new Tag().name(tag.name()).description(tag.description())); } } } return tags; }
private void convertConsumes(SwaggerDefinition definitionAnnotation, Swagger swagger) { String[] consumes = definitionAnnotation.consumes(); if (consumes == null) { return; } List<String> consumeList = Arrays.stream(consumes).filter(s -> !StringUtils.isEmpty(s)) .collect(Collectors.toList()); if (!consumeList.isEmpty()) { swagger.setConsumes(consumeList); } } }
/** * Company: SFL LLC * Created on 11/29/17 * * @author Yervand Aghababyan */ @SwaggerDefinition(tags = {@Tag(name = "status", description = "The status of the identity service with technical details")}) @Api(tags = {"status"}) @Component @Path("/status") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class StatusEndpoint { @ApiOperation("Returns identity service's status") @GET @Transactional(readOnly = true) public ApiResponseDto getStatus() { return new ApiResponseDto(); } }
@Api(value = "scim/v2/ResourceTypes") @SwaggerDefinition( info = @Info( title = "/ResourceTypes Endpoint Swagger Definition", version = "1.0", )) @Path("/scim/v2/ResourceTypes") public class ResourceTypeResource extends AbstractResource {
immediate = true @SwaggerDefinition( info = @Info( title = "Stockquote Swagger Definition", version = "1.0", )) @Path("/stockquote") public class StockQuoteService implements Microservice { private static final Logger log = LoggerFactory.getLogger(StockQuoteService.class);
if (!config.basePath().isEmpty()) { swagger.setBasePath(config.basePath()); if (!config.host().isEmpty()) { swagger.setHost(config.host()); for (String consume : config.consumes()) { if (StringUtils.isNotEmpty(consume)) { swagger.addConsumes(consume); for (String produce : config.produces()) { if (StringUtils.isNotEmpty(produce)) { swagger.addProduces(produce); if (!config.externalDocs().value().isEmpty()) { ExternalDocs externalDocs = swagger.getExternalDocs(); if (externalDocs == null) { externalDocs.setDescription(config.externalDocs().value()); if (!config.externalDocs().url().isEmpty()) { externalDocs.setUrl(config.externalDocs().url()); for (io.swagger.annotations.Tag tagConfig : config.tags()) { if (!tagConfig.name().isEmpty()) { Tag tag = new Tag(); tag.setName(tagConfig.name()); tag.setDescription(tagConfig.description());
/** * @author David BRASSELY (david.brassely at graviteesource.com) * @author GraviteeSource Team */ @SwaggerDefinition public class GraviteeApiDefinition implements ReaderListener { public static final String TOKEN_AUTH_SCHEME = "gravitee-auth"; @Override public void beforeScan(Reader reader, Swagger swagger) { } @Override public void afterScan(Reader reader, Swagger swagger) { swagger.addSecurityDefinition(TOKEN_AUTH_SCHEME, new BasicAuthDefinition()); swagger.getPaths().values() .stream() .forEach( path -> path.getOperations() .stream() .forEach( operation -> operation.addSecurity(GraviteeApiDefinition.TOKEN_AUTH_SCHEME, null))); } }
private void convertSchemes(SwaggerDefinition definitionAnnotation, Swagger swagger) { if (definitionAnnotation.schemes() == null) { return; } Stream<io.swagger.annotations.SwaggerDefinition.Scheme> stream = Arrays.asList(definitionAnnotation.schemes()).stream(); List<Scheme> schemes = stream.map(this::convertScheme).collect(Collectors.toList()); swagger.setSchemes(schemes); }
private void convertTags(SwaggerDefinition definitionAnnotation, Swagger swagger) { if (definitionAnnotation.tags() == null) { return; } Stream<io.swagger.annotations.Tag> stream = Arrays.asList(definitionAnnotation.tags()).stream(); List<Tag> tags = stream.map(this::convertTag).collect(Collectors.toList()); swagger.setTags(tags); }
private void convertProduces(SwaggerDefinition definitionAnnotation, Swagger swagger) { String[] produces = definitionAnnotation.produces(); if (produces == null) { return; } List<String> produceList = Arrays.stream(produces).filter(s -> !StringUtils.isEmpty(s)) .collect(Collectors.toList()); if (!produceList.isEmpty()) { swagger.setProduces(produceList); } }
private void setHostFromAnnotation() { for (Class<?> aClass : getValidClasses(SwaggerDefinition.class)) { SwaggerDefinition swaggerDefinition = AnnotationUtils.findAnnotation(aClass, SwaggerDefinition.class); host = emptyToNull(swaggerDefinition.host()); } }
private void setBasePathFromAnnotation() { for (Class<?> aClass : getValidClasses(SwaggerDefinition.class)) { SwaggerDefinition swaggerDefinition = AnnotationUtils.findAnnotation(aClass, SwaggerDefinition.class); basePath = emptyToNull(swaggerDefinition.basePath()); } }
private void setExternalDocsFromAnnotation() { for (Class<?> aClass : getValidClasses(SwaggerDefinition.class)) { SwaggerDefinition swaggerDefinition = AnnotationUtils.findAnnotation(aClass, SwaggerDefinition.class); io.swagger.annotations.ExternalDocs docsAnnotation = swaggerDefinition.externalDocs(); if (!Strings.isNullOrEmpty(docsAnnotation.url())) { externalDocs = new ExternalDocs(docsAnnotation.value(), docsAnnotation.url()); break; } } }
private void setInfoFromAnnotation() { Info resultInfo = new Info(); for (Class<?> aClass : getValidClasses(SwaggerDefinition.class)) { SwaggerDefinition swaggerDefinition = AnnotationUtils.findAnnotation(aClass, SwaggerDefinition.class); io.swagger.annotations.Info infoAnnotation = swaggerDefinition.info(); Info info = new Info().title(infoAnnotation.title()) .description(emptyToNull(infoAnnotation.description())) .version(infoAnnotation.version()) .termsOfService(emptyToNull(infoAnnotation.termsOfService())) .license(from(infoAnnotation.license())) .contact(from(infoAnnotation.contact())); Map<String, Object> customExtensions = BaseReaderUtils.parseExtensions(infoAnnotation.extensions()); for (Map.Entry<String, Object> extension : customExtensions.entrySet()) { resultInfo.setVendorExtension(extension.getKey(), extension.getValue()); } resultInfo.mergeWith(info); } info = resultInfo; }
@Path("/analyzer") @Api(value = "/analyzer", description = "Analysis services") @SwaggerDefinition(tags = {@Tag(name="analyzer", description="Analysis services")}) @Produces({ MediaType.APPLICATION_JSON }) public class AnalyzerService extends BaseResource {
@Api(value = "scim/v2/ServiceProviderConfig") @SwaggerDefinition( info = @Info( title = "/ServiceProviderConfig Endpoint Swagger Definition", version = "1.0", )) @Path("/scim/v2/ServiceProviderConfig") public class ServiceProviderConfigResource extends AbstractResource {
if (!config.basePath().isEmpty()) { swagger.setBasePath(config.basePath()); if (!config.host().isEmpty()) { swagger.setHost(config.host()); for (String consume : config.consumes()) { if (StringUtils.isNotEmpty(consume)) { swagger.addConsumes(consume); for (String produce : config.produces()) { if (StringUtils.isNotEmpty(produce)) { swagger.addProduces(produce); if (!config.externalDocs().value().isEmpty()) { ExternalDocs externalDocs = swagger.getExternalDocs(); if (externalDocs == null) { externalDocs.setDescription(config.externalDocs().value()); if (!config.externalDocs().url().isEmpty()) { externalDocs.setUrl(config.externalDocs().url()); for (io.swagger.annotations.Tag tagConfig : config.tags()) { if (!tagConfig.name().isEmpty()) { Tag tag = new Tag(); tag.setName(tagConfig.name()); tag.setDescription(tagConfig.description());