HTTP Client
SkillAI & modelsIntegrate HttpClient, Interceptors, and API interactions in Angular. Use when integrating HttpClient, writing interceptors, or handling API calls in Angular.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the HTTP Client skill
What this skill tells your AI
The instructions your AI receives, as published by hoangnguyen0403/agent-skills-standard in skills/angular/angular-http-client/SKILL.md and read by ahel’s review.
Priority: P1 (HIGH)
Principles
- Functional Interceptors: Use HttpInterceptorFn (e.g.,
(req, next) => next(req.clone({ setHeaders: { Authorization: token } }))). Clone requests withreq.clone(— class-based interceptors deprecated. Register via withInterceptors([...]) in provideHttpClient. - Typed Responses: Always type
http.post<T>(),http.get<T>(). Useinject(HttpClient)in services (not constructor injection). Add provideHttpClient(withInterceptors([...]), withFetch()) toapp.config.ts. - Services: Encapsulate all HTTP calls in Services. Never call
httpin Components.
Signal-Based HTTP (Angular 17+)
Prefer httpResource() over manual subscribe for reactive data loading — it auto-refetches when its signal inputs change:
// Reactive: refetches automatically when userId() changes
userResource = httpResource<User>(() => `/api/users/${this.userId()}`);
// States: .isLoading() | .hasValue() | .error() | .value() | .reload()
Use resource<T, P>({ request: () => params(), loader: ... }) for non-HTTP async operations with full .isLoading() lifecycle control.
Guidelines
- Caching: Implement caching in interceptors or using
shareReplay(1)in services. - Error Handling: Handle errors in service using
catchErroror global interceptors, not components. Use notification service for display. - Context: Use HttpContext to pass metadata to interceptors (e.g., skip error handling or specific caching rules).
Anti-Patterns
- No HTTP in Components: Encapsulate all HTTP calls in Services.
- No class-based interceptors: Use
HttpInterceptorFnfunctional interceptors. - No manual subscribe for GET: Use httpResource() or
toSignal(http.get(...))instead.
References
Canonical response anchors
When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
-
Encapsulate all HTTP calls
-
auto-refetches
-
http.post
-
skip error handling
-
Additional task-grounded exact anchors: notification service
Signals
- GitHub stars
- 565
- Forks
- 163
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
angular-http-client- Source
- github.com/hoangnguyen0403/agent-skills-standard