use of io.apicurio.datamodels.core.models.common.Info in project syndesis by syndesisio.
the class OpenApiConnectorGenerator method info.
@Override
public final APISummary info(final ConnectorTemplate connectorTemplate, final ConnectorSettings connectorSettings) {
final OpenApiModelInfo modelInfo = parseSpecification(connectorSettings, APIValidationContext.CONSUMED_API);
final OasDocument model = modelInfo.getModel();
if (model == null) {
final APISummary.Builder summaryBuilder = new APISummary.Builder().errors(modelInfo.getErrors()).warnings(modelInfo.getWarnings());
if (modelInfo.getResolvedSpecification() != null) {
summaryBuilder.putConfiguredProperty(SPECIFICATION, modelInfo.getResolvedSpecification());
}
return summaryBuilder.build();
}
// No matter if the validation fails, try to process the swagger
final Connector connector = basicConnector(connectorTemplate, connectorSettings);
final OasPaths paths = model.paths;
final AtomicInteger total = new AtomicInteger(0);
final Map<String, Integer> tagCounts;
if (paths == null) {
tagCounts = Collections.emptyMap();
} else {
tagCounts = OasModelHelper.getPathItems(paths).stream().flatMap(p -> OasModelHelper.getOperationMap(p).values().stream()).peek(o -> total.incrementAndGet()).flatMap(o -> OasModelHelper.sanitizeTags(o.tags).distinct()).collect(Collectors.groupingBy(Function.identity(), Collectors.reducing(0, (e) -> 1, Integer::sum)));
}
final ActionsSummary actionsSummary = new ActionsSummary.Builder().totalActions(total.intValue()).actionCountByTags(tagCounts).build();
return APISummary.Builder.createFrom(connector).actionsSummary(actionsSummary).errors(modelInfo.getErrors()).warnings(modelInfo.getWarnings()).putAllConfiguredProperties(connectorSettings.getConfiguredProperties()).putConfiguredProperty(SPECIFICATION, modelInfo.getResolvedSpecification()).build();
}
use of io.apicurio.datamodels.core.models.common.Info in project syndesis by syndesisio.
the class OpenApiConnectorGenerator method determineConnectorName.
@Override
protected final String determineConnectorName(final ConnectorTemplate connectorTemplate, final ConnectorSettings connectorSettings) {
final OpenApiModelInfo modelInfo = parseSpecification(connectorSettings, APIValidationContext.NONE);
if (!modelInfo.getErrors().isEmpty()) {
throw new IllegalArgumentException("Given OpenAPI specification contains errors: " + modelInfo);
}
final OasDocument openApiDoc = modelInfo.getModel();
final Info info = openApiDoc.info;
if (info == null) {
return super.determineConnectorName(connectorTemplate, connectorSettings);
}
final String title = info.title;
if (title == null) {
return super.determineConnectorName(connectorTemplate, connectorSettings);
}
return title;
}
use of io.apicurio.datamodels.core.models.common.Info in project syndesis by syndesisio.
the class OpenApiConnectorGenerator method determineConnectorDescription.
@Override
protected final String determineConnectorDescription(final ConnectorTemplate connectorTemplate, final ConnectorSettings connectorSettings) {
final OasDocument openApiDoc = parseSpecification(connectorSettings, APIValidationContext.NONE).getModel();
final Info info = openApiDoc.info;
if (info == null) {
return super.determineConnectorDescription(connectorTemplate, connectorSettings);
}
final String description = info.description;
if (description == null) {
return super.determineConnectorDescription(connectorTemplate, connectorSettings);
}
return description;
}
use of io.apicurio.datamodels.core.models.common.Info in project syndesis by syndesisio.
the class OpenApiGenerator method info.
@Override
public APISummary info(final String specification, final APIValidationContext validation) {
final OpenApiModelInfo modelInfo = OpenApiModelParser.parse(specification, validation);
final OasDocument model = modelInfo.getModel();
if (model == null) {
return new APISummary.Builder().errors(modelInfo.getErrors()).warnings(modelInfo.getWarnings()).build();
}
final OasPaths paths = model.paths;
final ActionsSummary actionsSummary = determineSummaryFrom(OasModelHelper.getPathItems(paths));
final Info info = model.info;
final String title = Optional.ofNullable(info).map(i -> i.title).orElse("unspecified");
final String description = Optional.ofNullable(info).map(i -> i.description).orElse("unspecified");
return //
new APISummary.Builder().name(//
title).description(//
description).actionsSummary(//
actionsSummary).errors(//
modelInfo.getErrors()).warnings(//
modelInfo.getWarnings()).putConfiguredProperty("specification", modelInfo.getResolvedSpecification()).build();
}
use of io.apicurio.datamodels.core.models.common.Info in project apicurio-data-models by Apicurio.
the class Oas20Document method createInfo.
/**
* @see io.apicurio.datamodels.core.models.Document#createInfo()
*/
@Override
public Info createInfo() {
Info info = new Oas20Info();
info._ownerDocument = this.ownerDocument();
info._parent = this;
return info;
}
Aggregations