laravilt / api
API generation and serialization for Laravilt
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/laravilt/api
Requires
- php: ^8.2
- illuminate/contracts: ^11.0|^12.0
- laravilt/support: @dev
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.24
- nunomaduro/collision: ^8.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/phpstan: ^2.0
This package is auto-updated.
Last update: 2025-12-02 13:11:15 UTC
README
REST API generation and serialization for Laravilt Resources.
Installation
composer require laravilt/api
Overview
The API package enables automatic REST API generation from Laravilt Resources, providing JSON serialization for web APIs and mobile applications.
Features
- Automatic API endpoint generation from Resources
- JSON serialization with customizable formatting
- Field-level control over API exposure
- Support for relationships and nested resources
- Pagination and filtering
- API versioning support
Usage
Basic API Resource
use Laravilt\Api\Api; use Laravilt\Api\Components\ApiField; class UserApi extends Api { public function fields(): array { return [ ApiField::make('id'), ApiField::make('name'), ApiField::make('email'), ApiField::make('created_at') ->format('Y-m-d H:i:s'), ]; } }
Field Configuration
ApiField::make('email') ->hidden(fn () => !auth()->user()->isAdmin()) ->transform(fn ($value) => strtolower($value)); ApiField::make('avatar') ->computed(fn ($record) => $record->getAvatar()); ApiField::make('posts') ->relationship('posts') ->nested(PostApi::class);
Serialization
// Single record $user = User::find(1); $apiData = UserApi::make($user)->toArray(); // Collection $users = User::all(); $apiData = UserApi::collection($users)->toArray();
Testing
composer test # Run tests composer test:coverage # With coverage composer test:types # PHPStan analysis composer test:style # Code style check composer format # Auto-fix code style
Changelog
Please see CHANGELOG for more information.
Contributing
Please see CONTRIBUTING for details.
Security
Please review SECURITY for security issues.
License
The MIT License (MIT). Please see License File for more information.