frontend-angular-api-service

Use when creating API services for backend communication with proper patterns for caching, error handling, and type safety.

16 stars

Best use case

frontend-angular-api-service is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when creating API services for backend communication with proper patterns for caching, error handling, and type safety.

Teams using frontend-angular-api-service should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/frontend-angular-api-service/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/frontend/frontend-angular-api-service/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/frontend-angular-api-service/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How frontend-angular-api-service Compares

Feature / Agentfrontend-angular-api-serviceStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when creating API services for backend communication with proper patterns for caching, error handling, and type safety.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Angular API Service Development Workflow

Use when creating/modifying API services extending PlatformApiService for backend communication.

## Decision Tree

```
What kind of API service?
├── Standard CRUD            → extend PlatformApiService + get/post/put/deleteRequest
├── With caching             → + enableCache option in get() calls
├── File upload/download     → + postFormData() / getBlob()
├── External API             → + override getDefaultHeaders()
├── Search/autocomplete      → + debounce in component, cache short-lived
└── Validation endpoint      → return Observable<boolean>
```

## Workflow

1. **Search** existing services: `grep "{Feature}ApiService" --include="*.ts"`
2. **Read** references (see Read Directives below)
3. **Define** DTOs: request interfaces, response interfaces, command interfaces
4. **Create** service extending `PlatformApiService` with `@Injectable({ providedIn: 'root' })`
5. **Implement** `apiUrl` getter using `environment.apiUrl + '/api/{Controller}'`
6. **Add** query methods (get), command methods (post/put/delete), validation methods
7. **Verify** checklist below

## Key Rules

- Always extend `PlatformApiService` (never use `HttpClient` directly)
- Use `environment.apiUrl` for base URL (never hardcode)
- All methods must have return type annotations: `Observable<T>`
- Define DTOs for all request/response types
- Use `{ enableCache: true, cacheKey, cacheDurationMs }` for cacheable endpoints
- File uploads use `postFormData()`, downloads use `getBlob()`
- Error handling done in component via `tapResponse()`, not in service

## File Location

```
src/Frontend/libs/apps-domains/src/lib/{domain}/services/{feature}-api.service.ts
```

## ⚠️ MUST READ Before Implementation

**IMPORTANT: You MUST read these files before writing any code. Do NOT skip.**

1. **⚠️ MUST READ** `.claude/skills/shared/angular-design-system.md` — platform-core imports
2. **⚠️ MUST READ** `.claude/skills/frontend-angular-api-service/references/api-service-patterns.md` — CRUD, caching, upload, search patterns
3. **⚠️ MUST READ** target app design system: `docs/design-system/07-technical-guide.md`

## Anti-Patterns

- `constructor(private http: HttpClient)` - must extend `PlatformApiService`
- Hardcoded URLs: `this.get('https://api.example.com/...')` - use `environment`
- Missing return type: `getUser(id)` - must be `getUser(id): Observable<UserDto>`
- Untyped response: `this.get('/users')` - must be `this.get<UserDto[]>('/users')`
- Error handling in service - let component handle via `tapResponse()`

## Verification Checklist

- [ ] Extends `PlatformApiService`
- [ ] `apiUrl` getter returns `environment.apiUrl + '/api/{Controller}'`
- [ ] All methods have `Observable<T>` return type
- [ ] DTOs defined for request/response types
- [ ] Caching configured for stable lookup endpoints
- [ ] File operations use `postFormData`/`getBlob`
- [ ] `@Injectable({ providedIn: 'root' })` decorator


## IMPORTANT Task Planning Notes

- Always plan and break many small todo tasks
- Always add a final review todo task to review the works done at the end to find any fix or enhancement needed

Related Skills

ring:dev-refactor-frontend

16
from diegosouzapw/awesome-omni-skill

Analyzes frontend codebase against Ring standards and generates refactoring tasks for ring:dev-cycle-frontend. Dispatches frontend-specific agents in ANALYSIS mode.

rcr-frontend

16
from diegosouzapw/awesome-omni-skill

Component development rules specific to Red Cliff Record. Use when working with React components, Tailwind CSS styling, Radix/Shadcn primitives, icons, buttons, forms, or frontend code in this project. Triggers on component files, styling questions, design tokens, Tailwind v4, Shadcn, Radix, TanStack Forms, Lucide icons, or UI primitive usage patterns (sizing, spacing, layout).

moai-domain-frontend

16
from diegosouzapw/awesome-omni-skill

Frontend development specialist covering React 19, Next.js 16, Vue 3.5, and modern UI/UX patterns with component architecture. Use when building web UIs, implementing components, optimizing frontend performance, or integrating state management.

Frontend Verification & Testing

16
from diegosouzapw/awesome-omni-skill

Verify and test Angular 18 frontend changes using Chrome DevTools MCP. Automatically check console errors, network requests, and visual rendering after implementing tasks or when fixing UI bugs. Use when creating components, debugging visual issues, validating API integration, or ensuring UI requirements are met. File types: .ts, .html, .css, .scss

frontend-trends-2026

16
from diegosouzapw/awesome-omni-skill

Collection of 2026 Frontend Design Formulas (Liquid Glass, Bento, Neo-Brutalism, Eco-Dark).

frontend-react-testing-strategy

16
from diegosouzapw/awesome-omni-skill

Standardized guidelines and patterns for Frontend React Testing Strategy.

frontend-razor

16
from diegosouzapw/awesome-omni-skill

Apply when working with Razor views, MVC layouts, partial views, and tag helpers

Frontend Pages

16
from diegosouzapw/awesome-omni-skill

Create or modify React pages using MUI components, React Router, and the HATEOAS API client.

Frontend Development

16
from diegosouzapw/awesome-omni-skill

พัฒนา Frontend ด้วย Angular, React, Vue, Next.js อย่างมืออาชีพ

frontend-design-ultimate

16
from diegosouzapw/awesome-omni-skill

Create distinctive, production-grade static sites with React, Tailwind CSS, and shadcn/ui — no mockups needed. Generates bold, memorable designs from plain text requirements with anti-AI-slop aesthetics, mobile-first responsive patterns, and single-file bundling. Use when building landing pages, marketing sites, portfolios, dashboards, or any static web UI. Supports both Vite (pure static) and Next.js (Vercel deploy) workflows.

frontend-design

16
from diegosouzapw/awesome-omni-skill

UI/UX design patterns using DaisyUI v5 and TailwindCSS for Splits Network

frontend-design-fixlify

16
from diegosouzapw/awesome-omni-skill

Create distinctive, production-grade frontend interfaces for Fixlify. Automatically activates when building UI components, pages, dashboards, forms, or any visual interface. Uses Fixlify design system with shadcn/ui, Tailwind CSS, and React patterns.