Class CachedOpenApiDocumentService

java.lang.Object
org.praxisplatform.uischema.openapi.CachedOpenApiDocumentService
All Implemented Interfaces:
OpenApiDocumentService

public class CachedOpenApiDocumentService extends Object implements OpenApiDocumentService
Implementacao padrao de OpenApiDocumentService com cache em memoria.

Mantem cache separado para documentos OpenAPI por grupo e para hashes estruturais por schemaId. O fetch do documento continua delegando a OpenApiDocsSupport; esta classe apenas concentra a politica de memoizacao e a traducao de falhas em excecoes estruturais adequadas para os controllers canonicamente expostos.

  • Constructor Details

    • CachedOpenApiDocumentService

      public CachedOpenApiDocumentService(org.springframework.web.client.RestTemplate restTemplate, com.fasterxml.jackson.databind.ObjectMapper objectMapper, OpenApiDocsSupport openApiDocsSupport)
  • Method Details

    • resolveGroupFromPath

      public String resolveGroupFromPath(String path)
      Description copied from interface: OpenApiDocumentService
      Resolve o grupo OpenAPI associado ao path informado.

      Implementacoes podem normalizar o path conforme necessario para reaproveitar a mesma logica de roteamento usada pelos grupos dinamicos do SpringDoc.

      Specified by:
      resolveGroupFromPath in interface OpenApiDocumentService
    • getDocumentForGroup

      public com.fasterxml.jackson.databind.JsonNode getDocumentForGroup(String groupName)
      Description copied from interface: OpenApiDocumentService
      Retorna o documento OpenAPI do grupo informado.

      Implementacoes podem buscar o documento remotamente e reutilizar cache interno. Falhas de resolucao ou fetch devem emergir como excecao estrutural, pois essa chamada alimenta superficies canonicas como /schemas/filtered e /schemas/catalog.

      Specified by:
      getDocumentForGroup in interface OpenApiDocumentService
    • getOrComputeSchemaHash

      public String getOrComputeSchemaHash(String schemaId, Supplier<com.fasterxml.jackson.databind.JsonNode> payloadSupplier)
      Description copied from interface: OpenApiDocumentService
      Retorna o hash estrutural canonico para o schemaId informado.

      O supplier deve produzir o payload estrutural canonico do schema. O hash nao deve refletir campos puramente documentais ou ruido nao estrutural.

      Specified by:
      getOrComputeSchemaHash in interface OpenApiDocumentService
    • clearCaches

      public void clearCaches()
      Description copied from interface: OpenApiDocumentService
      Limpa os caches estruturais mantidos pela implementacao.

      A limpeza deve abranger tanto documentos OpenAPI quanto hashes estruturais ja calculados.

      Specified by:
      clearCaches in interface OpenApiDocumentService