Package io.micronaut.openapi.visitor
Class OpenApiControllerVisitor
java.lang.Object
io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor
io.micronaut.openapi.visitor.OpenApiControllerVisitor
- All Implemented Interfaces:
io.micronaut.core.order.Ordered,io.micronaut.core.util.Toggleable,io.micronaut.inject.visitor.TypeElementVisitor<Object,io.micronaut.http.annotation.HttpMethodMapping>
@SupportedOptions("micronaut.openapi.enabled")
public class OpenApiControllerVisitor
extends AbstractOpenApiEndpointVisitor
implements io.micronaut.inject.visitor.TypeElementVisitor<Object,io.micronaut.http.annotation.HttpMethodMapping>
A
TypeElementVisitor the builds the Swagger model from Micronaut controllers at compile time.- Since:
- 1.0
- Author:
- graemerocher
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind -
Field Summary
Fields inherited from class io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor
classExternalDocs, classTagsFields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionOpenApiControllerVisitor(String description, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.extensions.Extension>> additionalExtensions, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.tags.Tag>> additionalTags, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.security.SecurityRequirement>> additionalSecurityRequirements, String customUri) -
Method Summary
Modifier and TypeMethodDescriptionprotected List<io.micronaut.http.MediaType>consumesMediaTypes(io.micronaut.inject.ast.MethodElement element) Returns the consumes media types.protected StringgetClassDescription(io.micronaut.inject.visitor.VisitorContext context) Returns the description for the class.protected StringgetMethodDescription(io.micronaut.inject.visitor.VisitorContext context) Returns the description for the method.intgetOrder()protected List<io.swagger.v3.oas.models.tags.Tag>getUserDefinedClassTags(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the class tags.protected io.micronaut.http.HttpMethodhttpMethod(io.micronaut.inject.ast.MethodElement element) Returns the HttpMethod of the element.protected booleanignore(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Returns true if the specified element should not be processed.protected booleanignore(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns true if the specified element should not be processed.protected List<io.swagger.v3.oas.models.security.SecurityRequirement>methodSecurityRequirements(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the security requirements at method level.protected List<io.swagger.v3.oas.models.servers.Server>methodServers(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the servers at method level.operationExtensions(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the extensions at method level.protected List<io.micronaut.http.MediaType>producesMediaTypes(io.micronaut.inject.ast.MethodElement element) Returns the produces media types.voidstart(io.micronaut.inject.visitor.VisitorContext context) protected List<io.micronaut.http.uri.UriMatchTemplate>uriMatchTemplates(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the uri paths of the element.Methods inherited from class io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor
visitClass, visitMethodMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.core.util.Toggleable
isEnabledMethods inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
finish, getClassType, getElementType, getSupportedAnnotationNames, getSupportedOptions, getVisitorKind, query, visitClass, visitConstructor, visitEnumConstant, visitField, visitMethod
-
Constructor Details
-
OpenApiControllerVisitor
public OpenApiControllerVisitor() -
OpenApiControllerVisitor
public OpenApiControllerVisitor(String description, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.extensions.Extension>> additionalExtensions, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.tags.Tag>> additionalTags, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.security.SecurityRequirement>> additionalSecurityRequirements, String customUri)
-
-
Method Details
-
start
public void start(io.micronaut.inject.visitor.VisitorContext context) - Specified by:
startin interfaceio.micronaut.inject.visitor.TypeElementVisitor<Object,io.micronaut.http.annotation.HttpMethodMapping>
-
ignore
protected boolean ignore(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitorReturns true if the specified element should not be processed.- Specified by:
ignorein classAbstractOpenApiEndpointVisitor- Parameters:
element- The ClassElement.context- The context.- Returns:
- true if the specified element should not be processed.
-
ignore
protected boolean ignore(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitorReturns true if the specified element should not be processed.- Specified by:
ignorein classAbstractOpenApiEndpointVisitor- Parameters:
element- The ClassElement.context- The context.- Returns:
- true if the specified element should not be processed.
-
httpMethod
protected io.micronaut.http.HttpMethod httpMethod(io.micronaut.inject.ast.MethodElement element) Description copied from class:AbstractOpenApiEndpointVisitorReturns the HttpMethod of the element.- Specified by:
httpMethodin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.- Returns:
- The HttpMethod of the element.
-
consumesMediaTypes
protected List<io.micronaut.http.MediaType> consumesMediaTypes(io.micronaut.inject.ast.MethodElement element) Description copied from class:AbstractOpenApiEndpointVisitorReturns the consumes media types.- Specified by:
consumesMediaTypesin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.- Returns:
- The consumes media types.
-
producesMediaTypes
protected List<io.micronaut.http.MediaType> producesMediaTypes(io.micronaut.inject.ast.MethodElement element) Description copied from class:AbstractOpenApiEndpointVisitorReturns the produces media types.- Specified by:
producesMediaTypesin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.- Returns:
- The produces media types.
-
getOrder
public int getOrder()- Specified by:
getOrderin interfaceio.micronaut.core.order.Ordered
-
uriMatchTemplates
protected List<io.micronaut.http.uri.UriMatchTemplate> uriMatchTemplates(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitorReturns the uri paths of the element.- Specified by:
uriMatchTemplatesin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.context- The context- Returns:
- The uri paths of the element.
-
getClassDescription
Description copied from class:AbstractOpenApiEndpointVisitorReturns the description for the class.- Specified by:
getClassDescriptionin classAbstractOpenApiEndpointVisitor- Parameters:
context- the visitor context- Returns:
- The description for the class.
-
getMethodDescription
Description copied from class:AbstractOpenApiEndpointVisitorReturns the description for the method.- Specified by:
getMethodDescriptionin classAbstractOpenApiEndpointVisitor- Parameters:
context- the visitor context- Returns:
- The description for the method.
-
getUserDefinedClassTags
protected List<io.swagger.v3.oas.models.tags.Tag> getUserDefinedClassTags(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitorReturns the class tags.- Specified by:
getUserDefinedClassTagsin classAbstractOpenApiEndpointVisitor- Parameters:
element- The ClassElement.context- The context.- Returns:
- The class tags.
-
operationExtensions
protected Map<String,Object> operationExtensions(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitorReturns the extensions at method level.- Specified by:
operationExtensionsin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.context- The context.- Returns:
- The extensions.
-
methodServers
protected List<io.swagger.v3.oas.models.servers.Server> methodServers(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitorReturns the servers at method level.- Specified by:
methodServersin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.context- The context.- Returns:
- The servers.
-
methodSecurityRequirements
protected List<io.swagger.v3.oas.models.security.SecurityRequirement> methodSecurityRequirements(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitorReturns the security requirements at method level.- Specified by:
methodSecurityRequirementsin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.context- The context.- Returns:
- The security requirements.
-