← Zurück zu Website-Bauer
Entdecke, wie der Skill hilft
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
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.
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,201on creation,204on empty delete,401,403,404,422for validation,409for 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(...)orback()) with flash feedback rather than returning JSON directly, so validation errors (422->errorsprop / error bags) and Inertia'suseForm/<Form>state work seamlessly.
Enthaltene Dateien 2
LICENSE.txtSKILL.md
