Installation
You can install the package via composer:
composer require rupadana/filament-api-service
Usage
php artisan make:filament-api-service BlogResource
Add this code to your routes file, example in routes/api.php
... use App\Filament\Resources\BlogResource\Api; ... BlogApiService::routes();
and then you will got this routes:
- [GET] '/api/blogs' - Return LengthAwarePaginator
- [GET] '/api/blogs/1' - Return single resource
- [PUT] '/api/blogs/1' - Update resource
- [DELETE] '/api/blogs/1' - Delete resource
Im using "spatie/laravel-query-builder": "^5.3"
to handle query and filtering. u can see "spatie/laravel-query-builder": "^5.3"
https://spatie.be/docs/laravel-query-builder/v5/introduction
You can specified allowedFilters
and allowedFields
in your model
Example
class User extends Model { public static array $allowedFilters = [ 'name' ]; public static array $allowedFields = [ 'name' ]; }
Transform API Response
php artisan make:filament-api-transformer Blog
it will be create BlogTransformer in App\Filament\Resources\BlogResource\Api\Transformers
next step you need to edit & add it to your Resource
use App\Filament\Resources\BlogResource\Api\Transformers\BlogTransformer; class BlogResource extends Resource { ... public static function getApiTransformer() { return BlogTransformer::class; } ... }
Group Name & Prefix
You can edit prefix & group route name as you want, default im use model singular label;
class BlogApiService extends ApiService { ... protected static string | null $groupRouteName = 'myblog'; ... }
Top comments (1)
Hi, kindly leave a like and comment if you got new insight! 🔥