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

v0.0.1 2025-11-12 16:20 UTC

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.