ng-data-access
Angular Data Access
The server-communication layer is signals-first: a reactive request drives an async loader, and
status/value/error come back as synchronous signals you read straight in an OnPush template. Reads
go through resource-family primitives (preferred by style-guide/style-guide.ts.md over "RxJS + async pipe"); mutations
stay imperative HttpClient calls. Everything routes through the HttpClient stack so interceptors,
testing, and SSR transfer cache apply uniformly.
For exhaustive resource API depth, defer to the canonical
../angular-developer/references/resource.md (synced
from Angular's official skill). This skill owns the project-shaped layer: wiring, service shape,
interceptors, error UX, and SSR.
1. Wire HttpClient first
Check app.config.ts first: if it lacks provideHttpClient, add it before any fetch works. Use withFetch() so
requests run on the Fetch API (SSR-friendly, streaming-capable):