Class OpenApiUiSchemaAutoConfiguration
Esta classe registra os beans de infraestrutura usados pelo runtime metadata-driven: fetch de documentos OpenAPI, resolucao canonica de operacao/schema, enriquecimento de schema e suporte aos fluxos de filtro e stats.
O objetivo aqui nao e documentar o comportamento interno de cada bean em detalhes, mas deixar
claro quais fronteiras o starter publica por convencao, quais beans aceitam override direto via
@ConditionalOnMissingBean e quais exigem substituicao mais explicita da auto-configuracao.
A narrativa arquitetural maior fica no documento tecnico da lane, nao nesta classe de bootstrap.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionactionAvailabilityContextResolver(ResourceStateSnapshotProvider resourceStateSnapshotProvider) actionAvailabilityEvaluator(List<ActionAvailabilityRule> actionAvailabilityRules) actionCatalogController(ActionCatalogService actionCatalogService) actionCatalogService(ActionDefinitionRegistry actionDefinitionRegistry, ActionAvailabilityEvaluator actionAvailabilityEvaluator, ActionAvailabilityContextResolver actionAvailabilityContextResolver) actionDefinitionRegistry(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping, org.springframework.context.ApplicationContext applicationContext, CanonicalOperationResolver canonicalOperationResolver, SchemaReferenceResolver schemaReferenceResolver, AnnotationConflictMode conflictMode, AnnotationConflictMode workflowActionShapeMode) Publica oApiDocsControllercom as dependencias canonicas ja resolvidas.canonicalCapabilityResolver(OpenApiDocumentService openApiDocumentService) canonicalOperationResolver(OpenApiDocumentService openApiDocumentService, org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping) Publica o resolvedor canonico de operacoes OpenAPI a partir de path ou handler Spring MVC.capabilityService(CanonicalCapabilityResolver canonicalCapabilityResolver, SurfaceCatalogService surfaceCatalogService, ActionCatalogService actionCatalogService, OpenApiDocumentService openApiDocumentService) filterRequestBodyAdvice(com.fasterxml.jackson.databind.ObjectMapper mapper, List<FilterPayloadNormalizer> payloadNormalizers) <E> GenericSpecificationsBuilder<E> Publica o builder generico de specifications usado pelos fluxos canonicos de filtro.modelResolver(com.fasterxml.jackson.databind.ObjectMapper mapper) Publica oCustomOpenApiResolverque enriquece schemas OpenAPI com metadados de UI.com.fasterxml.jackson.databind.ObjectMapperPublica oObjectMapperpadrao do starter, com suporte a Java Time.Publica utilitarios compartilhados para leitura e navegacao de documentos OpenAPI.openApiDocumentService(org.springframework.web.client.RestTemplate restTemplate, com.fasterxml.jackson.databind.ObjectMapper objectMapper, OpenApiDocsSupport openApiDocsSupport) Publica o servico canonico de fetch/cache de documentos OpenAPI e hash estrutural.openApiGroupResolver(org.springframework.beans.factory.ObjectProvider<org.springdoc.core.models.GroupedOpenApi> groupedOpenApis) Publica o resolver de grupos OpenAPI usado pelos servicos canonicamente expostos.rangePayloadNormalizer(boolean allowScalarRangePayload, boolean logLegacyScalarRangePayload) relativePeriodPayloadNormalizer(String relativePeriodZoneId) org.springframework.web.client.RestTemplatePublica oRestTemplateusado para fetch interno de documentos OpenAPI.Publica o gerador canonico deschemaId/schemaUrlpara/schemas/filtered.statsProperties(boolean enabled, int maxBuckets, int maxSeriesPoints, StatsSupportMode defaultMode) surfaceAvailabilityContextResolver(ResourceStateSnapshotProvider resourceStateSnapshotProvider) surfaceAvailabilityEvaluator(List<SurfaceAvailabilityRule> surfaceAvailabilityRules) surfaceCatalogController(SurfaceCatalogService surfaceCatalogService) surfaceCatalogService(SurfaceDefinitionRegistry surfaceDefinitionRegistry, SurfaceAvailabilityEvaluator surfaceAvailabilityEvaluator, SurfaceAvailabilityContextResolver surfaceAvailabilityContextResolver) surfaceDefinitionRegistry(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping, org.springframework.context.ApplicationContext applicationContext, CanonicalOperationResolver canonicalOperationResolver, SchemaReferenceResolver schemaReferenceResolver, AnnotationConflictMode conflictMode) org.springdoc.core.customizers.GlobalOpenApiCustomizeruiAnalyticsOpenApiCustomizer(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping, CanonicalOperationResolver canonicalOperationResolver, UiAnalyticsAnnotationMapper uiAnalyticsAnnotationMapper)
-
Constructor Details
-
OpenApiUiSchemaAutoConfiguration
public OpenApiUiSchemaAutoConfiguration()
-
-
Method Details
-
restTemplate
@Bean(name="openApiUiSchemaRestTemplate") @ConditionalOnMissingBean public org.springframework.web.client.RestTemplate restTemplate()Publica oRestTemplateusado para fetch interno de documentos OpenAPI. -
objectMapper
@Bean(name="openApiUiSchemaObjectMapper") @ConditionalOnMissingBean public com.fasterxml.jackson.databind.ObjectMapper objectMapper()Publica oObjectMapperpadrao do starter, com suporte a Java Time. -
modelResolver
@Bean public CustomOpenApiResolver modelResolver(com.fasterxml.jackson.databind.ObjectMapper mapper) Publica oCustomOpenApiResolverque enriquece schemas OpenAPI com metadados de UI. -
uiAnalyticsAnnotationMapper
-
uiAnalyticsOpenApiCustomizer
@Bean @ConditionalOnBean(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.class) @ConditionalOnMissingBean(name="uiAnalyticsOpenApiCustomizer") public org.springdoc.core.customizers.GlobalOpenApiCustomizer uiAnalyticsOpenApiCustomizer(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping, CanonicalOperationResolver canonicalOperationResolver, UiAnalyticsAnnotationMapper uiAnalyticsAnnotationMapper) -
rangePayloadNormalizer
@Bean @ConditionalOnMissingBean(name="rangePayloadNormalizer") @Order(0) public FilterPayloadNormalizer rangePayloadNormalizer(@Value("${praxis.filter.range.allow-scalar-payload:false}") boolean allowScalarRangePayload, @Value("${praxis.filter.range.log-legacy-scalar-payload:true}") boolean logLegacyScalarRangePayload) -
relativePeriodPayloadNormalizer
@Bean @ConditionalOnMissingBean(name="relativePeriodPayloadNormalizer") @Order(100) public FilterPayloadNormalizer relativePeriodPayloadNormalizer(@Value("${praxis.filter.relative-period.zone-id:UTC}") String relativePeriodZoneId) -
filterRequestBodyAdvice
@Bean @ConditionalOnMissingBean public FilterRequestBodyAdvice filterRequestBodyAdvice(com.fasterxml.jackson.databind.ObjectMapper mapper, List<FilterPayloadNormalizer> payloadNormalizers) -
genericSpecificationsBuilder
@Bean(name="openApiUiSchemaSpecificationsBuilder") public <E> GenericSpecificationsBuilder<E> genericSpecificationsBuilder()Publica o builder generico de specifications usado pelos fluxos canonicos de filtro. -
statsEligibility
-
statsQueryExecutor
-
statsProperties
@Bean @ConditionalOnMissingBean public StatsProperties statsProperties(@Value("${praxis.stats.enabled:false}") boolean enabled, @Value("${praxis.stats.max-buckets:20}") int maxBuckets, @Value("${praxis.stats.max-series-points:100}") int maxSeriesPoints, @Value("${praxis.stats.default-mode:DISABLED}") StatsSupportMode defaultMode) -
openApiGroupResolver
@Bean public OpenApiGroupResolver openApiGroupResolver(org.springframework.beans.factory.ObjectProvider<org.springdoc.core.models.GroupedOpenApi> groupedOpenApis) Publica o resolver de grupos OpenAPI usado pelos servicos canonicamente expostos.O bean existe para manter a estrategia oficial de mapeamento entre path e grupo SpringDoc. Como este metodo nao usa
@ConditionalOnMissingBean, trocar essa estrategia exige substituir explicitamente a auto-configuracao ou este bean. -
openApiDocsSupport
Publica utilitarios compartilhados para leitura e navegacao de documentos OpenAPI. -
openApiDocumentService
@Bean @ConditionalOnMissingBean public OpenApiDocumentService openApiDocumentService(org.springframework.web.client.RestTemplate restTemplate, com.fasterxml.jackson.databind.ObjectMapper objectMapper, OpenApiDocsSupport openApiDocsSupport) Publica o servico canonico de fetch/cache de documentos OpenAPI e hash estrutural. -
canonicalOperationResolver
@Bean @ConditionalOnMissingBean public CanonicalOperationResolver canonicalOperationResolver(OpenApiDocumentService openApiDocumentService, @Autowired(required=false) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping) Publica o resolvedor canonico de operacoes OpenAPI a partir de path ou handler Spring MVC. -
schemaReferenceResolver
Publica o gerador canonico deschemaId/schemaUrlpara/schemas/filtered. -
canonicalCapabilityResolver
@Bean @ConditionalOnMissingBean public CanonicalCapabilityResolver canonicalCapabilityResolver(OpenApiDocumentService openApiDocumentService) -
contextualSurfaceAvailabilityRule
@Bean @ConditionalOnMissingBean(name="contextualSurfaceAvailabilityRule") @Order(0) public SurfaceAvailabilityRule contextualSurfaceAvailabilityRule() -
requiredAuthoritiesSurfaceAvailabilityRule
@Bean @ConditionalOnMissingBean(name="requiredAuthoritiesSurfaceAvailabilityRule") @Order(100) public SurfaceAvailabilityRule requiredAuthoritiesSurfaceAvailabilityRule() -
allowedStatesSurfaceAvailabilityRule
@Bean @ConditionalOnMissingBean(name="allowedStatesSurfaceAvailabilityRule") @Order(200) public SurfaceAvailabilityRule allowedStatesSurfaceAvailabilityRule() -
surfaceAvailabilityEvaluator
@Bean @ConditionalOnMissingBean public SurfaceAvailabilityEvaluator surfaceAvailabilityEvaluator(List<SurfaceAvailabilityRule> surfaceAvailabilityRules) -
resourceStateSnapshotProvider
@Bean @ConditionalOnMissingBean public ResourceStateSnapshotProvider resourceStateSnapshotProvider() -
surfaceAvailabilityContextResolver
@Bean @ConditionalOnMissingBean public SurfaceAvailabilityContextResolver surfaceAvailabilityContextResolver(ResourceStateSnapshotProvider resourceStateSnapshotProvider) -
surfaceDefinitionRegistry
@Bean @ConditionalOnBean(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.class) @ConditionalOnMissingBean public SurfaceDefinitionRegistry surfaceDefinitionRegistry(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping, org.springframework.context.ApplicationContext applicationContext, CanonicalOperationResolver canonicalOperationResolver, SchemaReferenceResolver schemaReferenceResolver, @Value("${praxis.metadata.validation.surface-workflow-conflict:WARN}") AnnotationConflictMode conflictMode) -
surfaceCatalogService
@Bean @ConditionalOnBean(SurfaceDefinitionRegistry.class) @ConditionalOnMissingBean public SurfaceCatalogService surfaceCatalogService(SurfaceDefinitionRegistry surfaceDefinitionRegistry, SurfaceAvailabilityEvaluator surfaceAvailabilityEvaluator, SurfaceAvailabilityContextResolver surfaceAvailabilityContextResolver) -
contextualActionAvailabilityRule
@Bean @ConditionalOnMissingBean(name="contextualActionAvailabilityRule") @Order(0) public ActionAvailabilityRule contextualActionAvailabilityRule() -
requiredAuthoritiesActionAvailabilityRule
@Bean @ConditionalOnMissingBean(name="requiredAuthoritiesActionAvailabilityRule") @Order(100) public ActionAvailabilityRule requiredAuthoritiesActionAvailabilityRule() -
allowedStatesActionAvailabilityRule
@Bean @ConditionalOnMissingBean(name="allowedStatesActionAvailabilityRule") @Order(200) public ActionAvailabilityRule allowedStatesActionAvailabilityRule() -
actionAvailabilityEvaluator
@Bean @ConditionalOnMissingBean public ActionAvailabilityEvaluator actionAvailabilityEvaluator(List<ActionAvailabilityRule> actionAvailabilityRules) -
actionAvailabilityContextResolver
@Bean @ConditionalOnMissingBean public ActionAvailabilityContextResolver actionAvailabilityContextResolver(ResourceStateSnapshotProvider resourceStateSnapshotProvider) -
actionDefinitionRegistry
@Bean @ConditionalOnBean(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.class) @ConditionalOnMissingBean public ActionDefinitionRegistry actionDefinitionRegistry(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping, org.springframework.context.ApplicationContext applicationContext, CanonicalOperationResolver canonicalOperationResolver, SchemaReferenceResolver schemaReferenceResolver, @Value("${praxis.metadata.validation.surface-workflow-conflict:WARN}") AnnotationConflictMode conflictMode, @Value("${praxis.metadata.validation.workflow-action-shape:WARN}") AnnotationConflictMode workflowActionShapeMode) -
actionCatalogService
@Bean @ConditionalOnBean(ActionDefinitionRegistry.class) @ConditionalOnMissingBean public ActionCatalogService actionCatalogService(ActionDefinitionRegistry actionDefinitionRegistry, ActionAvailabilityEvaluator actionAvailabilityEvaluator, ActionAvailabilityContextResolver actionAvailabilityContextResolver) -
capabilityService
@Bean @ConditionalOnBean({SurfaceCatalogService.class,ActionCatalogService.class}) @ConditionalOnMissingBean public CapabilityService capabilityService(CanonicalCapabilityResolver canonicalCapabilityResolver, SurfaceCatalogService surfaceCatalogService, ActionCatalogService actionCatalogService, OpenApiDocumentService openApiDocumentService) -
apiDocsController
Publica oApiDocsControllercom as dependencias canonicas ja resolvidas.O controller continua registrado por auto-configuracao, mas a semantica pesada de grupo, documento e schema agora vive em servicos dedicados. Como este bean nao usa
@ConditionalOnMissingBean, substituir a superficie HTTP exige excluir ou substituir explicitamente esta auto-configuracao. -
surfaceCatalogController
@Bean @ConditionalOnBean(SurfaceCatalogService.class) @ConditionalOnMissingBean public SurfaceCatalogController surfaceCatalogController(SurfaceCatalogService surfaceCatalogService) -
actionCatalogController
@Bean @ConditionalOnBean(ActionCatalogService.class) @ConditionalOnMissingBean public ActionCatalogController actionCatalogController(ActionCatalogService actionCatalogService)
-