下面列出了io.swagger.annotations.ApiKeyAuthDefinition#io.swagger.models.ExternalDocs 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private ExternalDocs convertExternalDocs(io.swagger.annotations.ExternalDocs annotationExternalDocs) {
ExternalDocs externalDocs = new ExternalDocs();
if (StringUtils.isNotEmpty(annotationExternalDocs.url())) {
externalDocs.setUrl(annotationExternalDocs.url());
}
if (StringUtils.isNotEmpty(annotationExternalDocs.value())) {
externalDocs.setDescription(annotationExternalDocs.value());
}
if (StringUtils.isEmpty(externalDocs.getUrl()) && StringUtils.isEmpty(externalDocs.getDescription())) {
return null;
}
return externalDocs;
}
@Override
public MarkupDocBuilder apply(MarkupDocBuilder markupDocBuilder, Parameters params) {
ExternalDocs externalDocs = params.externalDocs;
String description = externalDocs.getDescription();
String url = externalDocs.getUrl();
if ((description != null && (isNotBlank(description) || (url != null && isNotBlank(url))))) {
markupDocBuilder.sectionTitleLevel(params.titleLevel, labels.getLabel(EXTERNAL_DOCS));
MarkupDocBuilder paragraph = copyMarkupDocBuilder(markupDocBuilder);
if (isNotBlank(description)) {
paragraph.italicText(labels.getLabel(EXTERNAL_DOCS_DESC)).textLine(COLON + description);
}
if (isNotBlank(url)) {
paragraph.italicText(labels.getLabel(EXTERNAL_DOCS_URL)).textLine(COLON + url);
}
markupDocBuilder.paragraph(paragraph.toString(), true);
}
return markupDocBuilder;
}
@Test
public void testExternalDocsComponent() throws URISyntaxException {
//Given
Path file = Paths.get(DefinitionComponentTest.class.getResource("/yaml/swagger_petstore_20160612.yaml").toURI());
Swagger2MarkupConverter converter = Swagger2MarkupConverter.from(file).build();
Swagger swagger = converter.getContext().getSchema();
ExternalDocs externalDocs = swagger.getExternalDocs();
Assert.assertNotNull(externalDocs);
Swagger2MarkupConverter.SwaggerContext context = converter.getContext();
MarkupDocBuilder markupDocBuilder = context.createMarkupDocBuilder();
//When
markupDocBuilder = new ExternalDocsComponent(context).apply(markupDocBuilder, ExternalDocsComponent.parameters(externalDocs, OverviewDocument.SECTION_TITLE_LEVEL));
markupDocBuilder.writeToFileWithoutExtension(outputDirectory, StandardCharsets.UTF_8);
//Then
Path expectedFile = getExpectedFile(COMPONENT_NAME);
DiffUtils.assertThatFileIsEqual(expectedFile, outputDirectory, getReportName(COMPONENT_NAME));
}
@Test
public void testExternalDocsGetAdded() throws MojoFailureException {
// arrange
when(apiSource.getExternalDocs()).thenReturn(new ExternalDocs("Example external docs", "https://example.com/docs"));
// act
AbstractDocumentSource externalDocsSource = new AbstractDocumentSource(log, apiSource, null) {
@Override
protected ClassSwaggerReader resolveApiReader() throws GenerateException {
return null;
}
@Override
protected AbstractReader createReader() {
return null;
}
};
// assert
assertThat(externalDocsSource.swagger.getExternalDocs(), notNullValue());
assertThat(externalDocsSource.swagger.getExternalDocs().getDescription(), equalTo("Example external docs"));
assertThat(externalDocsSource.swagger.getExternalDocs().getUrl(), equalTo("https://example.com/docs"));
}
/**
* Updates External documentation in Swagger
*
* @param swagger the API doc
* @param apiDocInfo the service information
*/
protected void updateExternalDoc(Swagger swagger, ApiDocInfo apiDocInfo) {
if (apiDocInfo.getApiInfo() == null)
return;
String externalDoc = apiDocInfo.getApiInfo().getDocumentationUrl();
if (externalDoc != null) {
swagger.setExternalDocs(new ExternalDocs(EXTERNAL_DOCUMENTATION, externalDoc));
}
}
private void readExternalDocs(Method method, Operation operation) {
io.swagger.annotations.ExternalDocs externalDocs = ReflectionUtils.getAnnotation(method,
io.swagger.annotations.ExternalDocs.class);
if (externalDocs != null) {
operation.setExternalDocs(new ExternalDocs(externalDocs.value(), externalDocs.url()));
}
}
private ExternalDocumentation convert(ExternalDocs externalDocs) {
ExternalDocumentation externalDocumentation = new ExternalDocumentation();
externalDocumentation.setUrl(externalDocs.getUrl());
externalDocumentation.setDescription(externalDocs.getDescription());
Map<String, Object> extensions = convert(externalDocs.getVendorExtensions());
if (extensions != null && extensions.size() > 0) {
externalDocumentation.setExtensions(extensions);
}
return externalDocumentation;
}
@Test
public void testGetExternalDocsNoneFound() {
// given
@SwaggerDefinition
class TestClassNoExternalDocs { }
ApiSource apiSource = spy(ApiSource.class);
when(apiSource.getValidClasses(SwaggerDefinition.class)).thenReturn(Sets.newHashSet(TestClassNoExternalDocs.class));
// when
ExternalDocs externalDocs = apiSource.getExternalDocs();
// then
Assert.assertNull(externalDocs);
}
private void readExternalDocs(Method method, Operation operation) {
io.swagger.annotations.ExternalDocs externalDocs = ReflectionUtils.getAnnotation(method, io.swagger.annotations.ExternalDocs.class);
if(externalDocs != null) {
operation.setExternalDocs(new ExternalDocs(externalDocs.value(), externalDocs.url()));
}
}
public static ExternalDocsComponent.Parameters parameters(ExternalDocs externalDocs, int titleLevel) {
return new ExternalDocsComponent.Parameters(externalDocs, titleLevel);
}
public Parameters(ExternalDocs externalDocs,
int titleLevel) {
this.externalDocs = Validate.notNull(externalDocs, "ExternalDocs must not be null");
this.titleLevel = titleLevel;
}
public ExternalDocs getExternalDocs() {
return externalDocs;
}
public void setExternalDocs(ExternalDocs externalDocs) {
this.externalDocs = externalDocs;
}
public ExternalDocs getExternalDocs() {
if (externalDocs == null) {
setExternalDocsFromAnnotation();
}
return externalDocs;
}