← Zurück zu Web-App-Entwickler

Skill · Version 1.0.0

Laravel-API und Inertia

Gestaltet klare Antwortverträge und schlanke Inertia-Seitendaten ohne ungefilterte Modelle oder unnötige Beziehungen.

laravel-api-inertia

Teammitglieder mit diesem Skill

Entdecke, wie der Skill hilft

Wann ist der Skill hilfreich?

Nutze diesen Skill für vorhersehbare Daten und Navigation in Laravel-Endpunkten und Inertia-Seiten.

Wobei hilft er dir?

  • Formt API Resources aus erlaubten Feldern und geladenen Beziehungen.
  • Erhält Statuscodes und Seitennavigationsmetadaten.
  • Hält gemeinsame Props schlank und leitet nach Änderungen passend weiter.

Das könntest du fragen

Baue eine paginierte Bestell-API samt Inertia-Seite mit rechteabhängigen Feldern und verständlicher Speicherrückmeldung. Öffne denselben Auftrag als Vertrieb und Finanznutzer. Seitenergebnisse und Page-Props enthalten auch nach Teilaktualisierung ausschließlich erlaubte Felder.

Ausführliche Dokumentation

Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.

Details…Weniger anzeigen

Laravel API & Inertia Integration

API Resources and HTTP contracts

  • Transform Eloquent models through JsonResource (ModelResource::make($model), ModelResource::collection($paginator)) rather than returning raw Eloquent models, so internal columns, hidden attributes and accidental relations never leak.
  • Guard every relationship and pivot attribute in toArray() with $this->whenLoaded('relation'), $this->whenCounted('relation') and $this->whenPivotLoaded(...) so serialized resources never trigger lazy-loading N+1 queries.
  • Use $this->when($condition, ...) or $this->mergeWhen(...) for role- or permission-dependent fields.
  • Return consistent status codes (200, 201 on creation, 204 on empty delete, 401, 403, 404, 422 for validation, 409 for state conflicts) and preserve pagination metadata (data, links, meta) when wrapping paginators.

Inertia.js server integration

  • Render Inertia pages with Inertia::render('Component/Name', [...]) matching the project's page component conventions, passing only the fields the page needs (or wrapping models in Resources/DTOs).
  • Keep HandleInertiaRequests::share() lightweight because shared props run on every request; wrap expensive or rarely needed shared data in closures so they are evaluated lazily.
  • Support partial reloads (Inertia::lazy(...) / closures) and, on Inertia v2, Inertia::defer(fn () => ...) for slow secondary panels so the initial page shell loads fast and the UI can show targeted loading skeletons.
  • After mutations in Inertia controllers, return a redirect (to_route(...) or back()) with flash feedback rather than returning JSON directly, so validation errors (422 -> errors prop / error bags) and Inertia's useForm / <Form> state work seamlessly.

Enthaltene Dateien 2

  • LICENSE.txt
  • SKILL.md