CoreKeyResolver

Builds a stable cache key from QueryMetadata.

Resolution order for each {placeholder} in QueryMetadata.template:

  1. QueryMetadata.bindings — populated from @Path / @Query by the transport adapter.

  2. QueryMetadata.bodyBytes — JSON body searched for a matching primitive field via Utf8JsonLookup.

  3. Unresolved → returns null. Caller skips the cache action safely.

Output shape: scopeName|<resolvedTemplate>|<fingerprint-hash> where fingerprint is a deterministic 64-bit FNV-style hash of the sorted key=value bindings, hex-encoded.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
fun resolve(metadata: QueryMetadata): String?

Resolves metadata into a cache key, or null if any placeholder cannot be filled from QueryMetadata.bindings or QueryMetadata.bodyBytes.

Link copied to clipboard

Resolves QueryMetadata.tagTemplates against the same bindings / body sources used by resolve. Templates that cannot be fully resolved are dropped silently.