package io.swagger.resources;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.Contact;
import io.swagger.annotations.Extension;
import io.swagger.annotations.ExtensionProperty;
import io.swagger.annotations.ExternalDocs;
import io.swagger.annotations.Info;
import io.swagger.annotations.License;
import io.swagger.annotations.SwaggerDefinition;
import io.swagger.annotations.Tag;
import io.swagger.jaxrs.Reader;
import io.swagger.jaxrs.config.ReaderListener;
import io.swagger.models.Swagger;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import java.util.ArrayList;
@SwaggerDefinition(
info = @Info(
description = "Custom description",
version = "V1.2.3",
title = "TheAwesomeApi",
termsOfService = "do-what-you-want",
contact = @Contact(name = "Sponge-Bob", email = "sponge-bob@swagger.io", url = "http://swagger.io"),
license = @License(name = "Apache 2.0", url = "http://www.apache.org"),
extensions = {
@Extension(properties = {
@ExtensionProperty(name = "test1", value = "value1"),
@ExtensionProperty(name = "test2", value = "value2")
}),
@Extension(name = "test", properties = {
@ExtensionProperty(name = "test1", value = "value1"),
@ExtensionProperty(name = "test2", value = "value2")
})
}
),
consumes = {"application/json", "application/xml"},
produces = {"application/json", "application/xml"},
schemes = {SwaggerDefinition.Scheme.HTTP, SwaggerDefinition.Scheme.HTTPS},
tags = {
@Tag(name = "mytag", description = "my tag"),
@Tag(name = "anothertag", description = "another tag",
externalDocs = @ExternalDocs(value = "test", url = "http://swagger.io")),
@Tag(name = "tagwithextensions", description = "my tag",
extensions = @Extension(properties = {@ExtensionProperty(name = "test", value = "value")}))
}, externalDocs = @ExternalDocs(value = "test", url = "http://swagger.io")
)
@Api(value = "/external/info/")
@Path("who/cares")
public class ResourceWithConfigAndExtensions implements ReaderListener {
@ApiOperation(value = "test.", tags = {"tagwithextensions", "mytag", "testingtag"}, extensions = {
@Extension(properties = @ExtensionProperty(name = "test", value = "value"))
})
@GET
public void getTest(@ApiParam(value = "test") ArrayList<String> tenantId) {
return;
}
@Override
public void beforeScan(Reader reader, Swagger swagger) {
swagger.addTag(new io.swagger.models.Tag().name("Tag-added-before-read"));
}
@Override
public void afterScan(Reader reader, Swagger swagger) {
swagger.addTag(new io.swagger.models.Tag().name("Tag-added-after-read"));
}
}