Skip to content

Latest commit

 

History

History
30 lines (25 loc) · 1.88 KB

README.md

File metadata and controls

30 lines (25 loc) · 1.88 KB

jsonapi-java-annotations

Runtime-visible, dependency-free annotations that assign JSON:API semantic roles to domain classes, records, and properties for later adapter mapping. User examples belong to Resources.

The public API is the com.kazforge.jsonapi.annotation package: @JsonApiResource, @JsonApiId, @JsonApiLocalId, @JsonApiAttribute, @JsonApiRelationship, @JsonApiMeta, and @JsonApiRelationshipMeta.

Annotations assign roles only. Configured Jackson owns property discovery, visibility, external names, mix-ins, creators, and conversion. @JsonApiResource.type() is JSON:API semantic data rather than a Java property name.

id and lid are independent roles and never fall back to one another; there is no conventional implicit lid. Resource meta, relationship meta, and per-linkage identifier meta are distinct. Identifier meta uses the neutral RelationshipLinkage<T, M> value rather than another annotation.

This module provides no codec, document model, inclusion/fetch/cascade policy, query parser, or framework integration. See the architecture overview, ADR-004, and ADR-011.