mcpbeat

Angular HTTP Client

hoangnguyen0403/angular-http-client

Integrate HttpClient, Interceptors, and API interactions in Angular. Use when integrating HttpClient, writing interceptors, or handling API calls in Angular.

2k tokens
context cost
the whole folder, loaded on every use
3
files
instructions only
0
copies elsewhere
how many repositories repackaged it
536
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/HoangNguyen0403/agent-skills-standard --skill angular-http-client

What comes with it

5 763 bytes besides the instruction
evals/evals.json
references/interceptors.md

The instruction itself

8 sections, as written by the author

HTTP Client

Priority: P1 (HIGH)

Principles

  • Functional Interceptors: Use HttpInterceptorFn (e.g., (req, next) => next(req.clone({ setHeaders: { Authorization: token } }))). Clone requests with req.clone(class-based interceptors deprecated. Register via withInterceptors([...]) in provideHttpClient.
  • Typed Responses: Always type http.post<T>(), http.get<T>(). Use inject(HttpClient) in services (not constructor injection). Add provideHttpClient(withInterceptors([...]), withFetch()) to app.config.ts.
  • Services: Encapsulate all HTTP calls in Services. Never call http in Components.

Signal-Based HTTP (Angular 17+)

Prefer httpResource<T>() 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 catchError or 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 HttpInterceptorFn functional interceptors.
  • No manual subscribe for GET: Use httpResource() or toSignal(http.get(...)) instead.

References

  • Interceptors

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<T>
  • skip error handling
  • Additional task-grounded exact anchors: notification service

How to use it

Copy the folder

Take hoangnguyen0403/angular-http-client from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.