Use `httpResource<T>()` inside a service. Read signals in its request function; Angular then **auto-refetches** whenever those signals change. ```ts import { Injectable, signal } from '@angular/core'; import { httpResource, HttpClient } from '@angular/common/http'; interface User { id: string; name: string; } @Injectable({ providedIn: 'root' }) export class UserService { private readonly userId = signal('42'); readonly userResource = httpResource<User>( () => `/api/users/${this.userId()}` ); ...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill angular-http-client --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Angular Http Client?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-angular-http-client-b7b7d25b)More formats (shields.io, HTML) on the badges page.
Use `httpResource<T>()` inside a service. Read signals in its request function; Angular then **auto-refetches** whenever those signals change.
```ts
import { Injectable, signal } from '@angular/core';
import { httpResource, HttpClient } from '@angular/common/http';
interface User {
id: string;
name: string;
}
@Injectable({ providedIn: 'root' })
export class UserService {
private readonly userId = signal('42');
readonly userResource = httpResource<User>(
() => `/api/users/${this.userId()}`
);
selectUser(id: string): void {
this.userId.set(id);
}
}
```
Consume the resource reactively:
```ts
@Component({
template: `
@if (users.userResource.isLoading()) {
Loading...
} @else if (users.userResource.error(); as error) {
Failed to load user.
} @else if (users.userResource.hasValue()) {
{{ users.userResource.value().name }}
}
`
})
export class UserComponent {
readonly users = inject(UserService);
}
```
Useful resource signals include:
```ts
userResource.isLoading()
userResource.hasValue()
userResource.error()
userResource.value()
userResource.reload()
```
Encapsulate all HTTP calls in services; components should only consume the exposed signals. For non-GET operations, use typed `HttpClient` calls such as `http.post<T>()`, handling errors in the service or a functional interceptor and reporting user-facing failures through a notification service. Interceptors can use `HttpContext` metadata such as `skip error handling` when needed.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!