enm/json-api-common
JSON API Common provides shared PHP classes and interfaces for building JSON:API-compliant servers and clients. It powers enm/json-api-server and enm/json-api-client, covering resources, relationships, links, documents, errors, and requests.
enm family (json-api-server, json-api-client) versus a Laravel-native JSON:API implementation. This package alone delivers no endpoint behavior; it is a transitive building block.Consider it when:
enm JSON:API server/client stack and need the shared domain classes these two depend on — installing it directly is otherwise unnecessary, since it arrives as a dependency.enm/json-api-server or enm/json-api-client and want consistent document, resource, link, and error structures across both.enm ecosystem and want to gauge whether its abstractions fit your domain model before adopting the server or client.Look elsewhere when:
laravel-json-api line) is the better fit; older cloudcreativity/laravel-json-api is itself legacy.For executives: JSON:API is a mature, widely understood API standard, and adopting a standard reduces integration time, documentation effort, and client-specific rework — especially when several clients consume the same backend. However, this specific package is not the product decision: enm/json-api-common is a small, low-level shared library that only supplies document/resource/error structures, is archived, saw its last release in December 2020, and has negligible adoption. It is not a delivery mechanism on its own — it exists to be shared by the enm server and client packages. Recommendation: adopt the JSON:API specification, not this package. If we proceed with JSON:API on Laravel, we should select an actively maintained, framework-native implementation and treat enm/* as a fallback only if we inherit an existing codebase already on it.
For engineering: This provides the common vocabulary — traits, resources, relationships, attributes/meta, links, documents, and error/request abstractions — so a PHP client and server serialize identically and avoid contract drift. The API is documented (trait, resources, collections, links, documents, errors, requests) and MIT-licensed, so forking is legally straightforward. The costs are real: archived repo, stale Travis CI, no dependents, no guarantee of compatibility with current PHP or Laravel versions, and the burden of patching it ourselves. Sizing implication: adopting the enm trio means owning maintenance; adopting a maintained Laravel-native alternative means less control but far lower TCO. Decision asked of engineering: confirm whether any existing services already depend on the enm stack. If not, we standardize on JSON:API via a maintained implementation; if yes, we scope a contained fork-and-pin plan with an explicit exit path.
How can I help you explore Laravel packages today?