Package org.springdoc.api
Class AbstractOpenApiResource
- java.lang.Object
-
- io.swagger.v3.core.filter.SpecFilter
-
- org.springdoc.api.AbstractOpenApiResource
-
public abstract class AbstractOpenApiResource extends io.swagger.v3.core.filter.SpecFilter
The type Abstract open api resource.- Author:
- bnasslahsen, kevinraddatz
-
-
Field Summary
Fields Modifier and Type Field Description protected String
groupName
The Group name.protected OpenAPIService
openAPIService
The Open api builder.protected SpringDocConfigProperties
springDocConfigProperties
The Spring doc config properties.protected SpringDocProviders
springDocProviders
The Spring doc providers.
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractOpenApiResource(String groupName, org.springframework.beans.factory.ObjectFactory<OpenAPIService> openAPIBuilderObjectFactory, AbstractRequestService requestBuilder, GenericResponseService responseBuilder, OperationService operationParser, Optional<List<OperationCustomizer>> operationCustomizers, Optional<List<OpenApiCustomiser>> openApiCustomisers, Optional<List<OpenApiMethodFilter>> methodFilters, SpringDocConfigProperties springDocConfigProperties, SpringDocProviders springDocProviders)
Instantiates a new Abstract open api resource.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static void
addHiddenRestControllers(Class<?>... classes)
Add hidden rest controllers.static void
addHiddenRestControllers(String... classes)
Add hidden rest controllers.static void
addRestControllers(Class<?>... classes)
Add rest controllers.protected void
calculatePath(List<RouterOperation> routerOperationList, Locale locale)
Calculate path.protected void
calculatePath(RouterOperation routerOperation, Locale locale)
Calculate path.protected void
calculatePath(org.springframework.web.method.HandlerMethod handlerMethod, String operationPath, Set<org.springframework.web.bind.annotation.RequestMethod> requestMethods, String[] consumes, String[] produces, String[] headers, Locale locale)
Calculate path.protected void
calculatePath(org.springframework.web.method.HandlerMethod handlerMethod, RouterOperation routerOperation, Locale locale)
Calculate path.static boolean
containsResponseBody(org.springframework.web.method.HandlerMethod handlerMethod)
Contains response body boolean.protected io.swagger.v3.oas.models.Operation
customiseOperation(io.swagger.v3.oas.models.Operation operation, org.springframework.web.method.HandlerMethod handlerMethod)
Customise operation operation.protected String
decode(String requestURI)
Decode string.protected URI
getActuatorURI(String scheme, String host)
Gets actuator uri.protected Set<org.springframework.web.bind.annotation.RequestMethod>
getDefaultAllowedHttpMethods()
Gets default allowed http methods.protected io.swagger.v3.oas.models.OpenAPI
getOpenApi(Locale locale)
Gets open api.protected abstract void
getPaths(Map<String,Object> findRestControllers, Locale locale)
Gets paths.protected void
getRouterFunctionPaths(String beanName, AbstractRouterFunctionVisitor routerFunctionVisitor, Locale locale)
Gets router function paths.protected void
initOpenAPIBuilder(Locale locale)
Init open api builder.protected boolean
isActuatorRestController(String operationPath, org.springframework.web.method.HandlerMethod handlerMethod)
Is actuator rest controller boolean.protected boolean
isAdditionalRestController(Class<?> rawClass)
Is additional rest controller boolean.protected boolean
isConditionToMatch(String[] existingConditions, org.springdoc.api.AbstractOpenApiResource.ConditionType conditionType)
Is condition to match boolean.protected boolean
isFilterCondition(org.springframework.web.method.HandlerMethod handlerMethod, String operationPath, String[] produces, String[] consumes, String[] headers)
Is filter condition boolean.static boolean
isHiddenRestControllers(Class<?> rawClass)
Is hidden rest controllers boolean.protected boolean
isMethodToFilter(org.springframework.web.method.HandlerMethod handlerMethod)
Is target method suitable for inclusion in current documentation/protected boolean
isPackageToScan(Package aPackage)
Is package to scan boolean.protected boolean
isPathToMatch(String operationPath)
Is path to match boolean.protected boolean
isRestController(Map<String,Object> restControllers, org.springframework.web.method.HandlerMethod handlerMethod, String operationPath)
Is rest controller boolean.protected void
mergeRouters(List<RouterFunctionData> routerFunctionDatas, List<RouterOperation> routerOperationList)
Merge routers.static void
setModelAndViewClass(Class<?> modelAndViewClass)
Sets model and view class.protected String
writeJsonValue(io.swagger.v3.oas.models.OpenAPI openAPI)
Write json value string.protected String
writeYamlValue(io.swagger.v3.oas.models.OpenAPI openAPI)
Write yaml value string.
-
-
-
Field Detail
-
openAPIService
protected OpenAPIService openAPIService
The Open api builder.
-
springDocConfigProperties
protected final SpringDocConfigProperties springDocConfigProperties
The Spring doc config properties.
-
groupName
protected final String groupName
The Group name.
-
springDocProviders
protected final SpringDocProviders springDocProviders
The Spring doc providers.
-
-
Constructor Detail
-
AbstractOpenApiResource
protected AbstractOpenApiResource(String groupName, org.springframework.beans.factory.ObjectFactory<OpenAPIService> openAPIBuilderObjectFactory, AbstractRequestService requestBuilder, GenericResponseService responseBuilder, OperationService operationParser, Optional<List<OperationCustomizer>> operationCustomizers, Optional<List<OpenApiCustomiser>> openApiCustomisers, Optional<List<OpenApiMethodFilter>> methodFilters, SpringDocConfigProperties springDocConfigProperties, SpringDocProviders springDocProviders)
Instantiates a new Abstract open api resource.- Parameters:
groupName
- the group nameopenAPIBuilderObjectFactory
- the open api builder object factoryrequestBuilder
- the request builderresponseBuilder
- the response builderoperationParser
- the operation parseroperationCustomizers
- the operation customizersopenApiCustomisers
- the open api customisersmethodFilters
- the method filtersspringDocConfigProperties
- the spring doc config propertiesspringDocProviders
- the spring doc providers
-
-
Method Detail
-
addRestControllers
public static void addRestControllers(Class<?>... classes)
Add rest controllers.- Parameters:
classes
- the classes
-
addHiddenRestControllers
public static void addHiddenRestControllers(Class<?>... classes)
Add hidden rest controllers.- Parameters:
classes
- the classes
-
addHiddenRestControllers
public static void addHiddenRestControllers(String... classes)
Add hidden rest controllers.- Parameters:
classes
- the classes
-
getOpenApi
protected io.swagger.v3.oas.models.OpenAPI getOpenApi(Locale locale)
Gets open api.- Parameters:
locale
- the locale- Returns:
- the open api
-
getPaths
protected abstract void getPaths(Map<String,Object> findRestControllers, Locale locale)
Gets paths.- Parameters:
findRestControllers
- the find rest controllerslocale
- the locale
-
calculatePath
protected void calculatePath(org.springframework.web.method.HandlerMethod handlerMethod, RouterOperation routerOperation, Locale locale)
Calculate path.- Parameters:
handlerMethod
- the handler methodrouterOperation
- the router operationlocale
- the locale
-
calculatePath
protected void calculatePath(List<RouterOperation> routerOperationList, Locale locale)
Calculate path.- Parameters:
routerOperationList
- the router operation listlocale
- the locale
-
calculatePath
protected void calculatePath(RouterOperation routerOperation, Locale locale)
Calculate path.- Parameters:
routerOperation
- the router operationlocale
- the locale
-
calculatePath
protected void calculatePath(org.springframework.web.method.HandlerMethod handlerMethod, String operationPath, Set<org.springframework.web.bind.annotation.RequestMethod> requestMethods, String[] consumes, String[] produces, String[] headers, Locale locale)
Calculate path.- Parameters:
handlerMethod
- the handler methodoperationPath
- the operation pathrequestMethods
- the request methodslocale
- the locale
-
getRouterFunctionPaths
protected void getRouterFunctionPaths(String beanName, AbstractRouterFunctionVisitor routerFunctionVisitor, Locale locale)
Gets router function paths.- Parameters:
beanName
- the bean namerouterFunctionVisitor
- the router function visitorlocale
- the locale
-
isFilterCondition
protected boolean isFilterCondition(org.springframework.web.method.HandlerMethod handlerMethod, String operationPath, String[] produces, String[] consumes, String[] headers)
Is filter condition boolean.- Parameters:
handlerMethod
- the handler methodoperationPath
- the operation pathproduces
- the producesconsumes
- the consumesheaders
- the headers- Returns:
- the boolean
-
isMethodToFilter
protected boolean isMethodToFilter(org.springframework.web.method.HandlerMethod handlerMethod)
Is target method suitable for inclusion in current documentation/- Parameters:
handlerMethod
- the method to check- Returns:
- whether the method should be included in the current OpenAPI definition
-
isConditionToMatch
protected boolean isConditionToMatch(String[] existingConditions, org.springdoc.api.AbstractOpenApiResource.ConditionType conditionType)
Is condition to match boolean.- Parameters:
existingConditions
- the existing conditionsconditionType
- the condition type- Returns:
- the boolean
-
isPackageToScan
protected boolean isPackageToScan(Package aPackage)
Is package to scan boolean.- Parameters:
aPackage
- the a package- Returns:
- the boolean
-
isPathToMatch
protected boolean isPathToMatch(String operationPath)
Is path to match boolean.- Parameters:
operationPath
- the operation path- Returns:
- the boolean
-
decode
protected String decode(String requestURI)
Decode string.- Parameters:
requestURI
- the request uri- Returns:
- the string
-
isAdditionalRestController
protected boolean isAdditionalRestController(Class<?> rawClass)
Is additional rest controller boolean.- Parameters:
rawClass
- the raw class- Returns:
- the boolean
-
containsResponseBody
public static boolean containsResponseBody(org.springframework.web.method.HandlerMethod handlerMethod)
Contains response body boolean.- Parameters:
handlerMethod
- the handler method- Returns:
- the boolean
-
isRestController
protected boolean isRestController(Map<String,Object> restControllers, org.springframework.web.method.HandlerMethod handlerMethod, String operationPath)
Is rest controller boolean.- Parameters:
restControllers
- the rest controllershandlerMethod
- the handler methodoperationPath
- the operation path- Returns:
- the boolean
-
isHiddenRestControllers
public static boolean isHiddenRestControllers(Class<?> rawClass)
Is hidden rest controllers boolean.- Parameters:
rawClass
- the raw class- Returns:
- the boolean
-
getDefaultAllowedHttpMethods
protected Set<org.springframework.web.bind.annotation.RequestMethod> getDefaultAllowedHttpMethods()
Gets default allowed http methods.- Returns:
- the default allowed http methods
-
customiseOperation
protected io.swagger.v3.oas.models.Operation customiseOperation(io.swagger.v3.oas.models.Operation operation, org.springframework.web.method.HandlerMethod handlerMethod)
Customise operation operation.- Parameters:
operation
- the operationhandlerMethod
- the handler method- Returns:
- the operation
-
mergeRouters
protected void mergeRouters(List<RouterFunctionData> routerFunctionDatas, List<RouterOperation> routerOperationList)
Merge routers.- Parameters:
routerFunctionDatas
- the router function datasrouterOperationList
- the router operation list
-
initOpenAPIBuilder
protected void initOpenAPIBuilder(Locale locale)
Init open api builder.- Parameters:
locale
- the locale
-
writeYamlValue
protected String writeYamlValue(io.swagger.v3.oas.models.OpenAPI openAPI) throws com.fasterxml.jackson.core.JsonProcessingException
Write yaml value string.- Parameters:
openAPI
- the open api- Returns:
- the string
- Throws:
com.fasterxml.jackson.core.JsonProcessingException
- the json processing exception
-
getActuatorURI
protected URI getActuatorURI(String scheme, String host)
Gets actuator uri.- Parameters:
scheme
- the schemehost
- the host- Returns:
- the actuator uri
-
isActuatorRestController
protected boolean isActuatorRestController(String operationPath, org.springframework.web.method.HandlerMethod handlerMethod)
Is actuator rest controller boolean.- Parameters:
operationPath
- the operation pathhandlerMethod
- the handler method- Returns:
- the boolean
-
writeJsonValue
protected String writeJsonValue(io.swagger.v3.oas.models.OpenAPI openAPI) throws com.fasterxml.jackson.core.JsonProcessingException
Write json value string.- Parameters:
openAPI
- the open api- Returns:
- the string
- Throws:
com.fasterxml.jackson.core.JsonProcessingException
- the json processing exception
-
setModelAndViewClass
public static void setModelAndViewClass(Class<?> modelAndViewClass)
Sets model and view class.- Parameters:
modelAndViewClass
- the model and view class
-
-