juststeveking / laravel-api-toolkit
A toolkit for creating APIs in Laravel
Fund package maintenance!
JustSteveKing
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.19
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- orchestra/testbench: ^6.7
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.3
README
A toolkit for creating APIs in Laravel.
Installation
You can install the package via composer:
composer require juststeveking/laravel-api-toolkit
You can publish the config file with:
php artisan vendor:publish --provider="JustSteveKing\Laravel\ApiToolkit\ApiToolkitServiceProvider" --tag="config"
This is the contents of the published config file:
return [ 'resource_name' => '%sResource', 'policy_name' => '%sPolicy', 'seeder_name' => '%sSeeder', 'controllers' => [ [ 'name' => 'IndexController', 'options' => [ '--invokable', ] ], [ 'name' => 'CreateController', 'options' => [ '--invokable', ] ], [ 'name' => 'ShowController', 'options' => [ '--invokable', ] ], [ 'name' => 'UpdateController', 'options' => [ '--invokable', ] ], [ 'name' => 'DeleteController', 'options' => [ '--invokable', ] ], ], 'form_requests' => [ 'CreateRequest', 'UpdateRequest', ], ];
Usage
To get starteed using this, there is only one command you really need to worry about: api-toolkit:resource
.
The only option you need to pass it is the eloquent Model you wish to create and create the APi blueprint for.
php artisan api-toolkit:resource Post
The above command will generate:
app/Models/Post.php
app/Policies/PostPolicy.php
- Class name can be altered in configapp/Http/Resources/PostResource.php
- Class name can be altered in configapp/Http/Requests/Api/Post/CreateRequest.php
- Class name can be altered in configapp/Http/Requests/Api/Post/UpdateRequest.php
- Class name can be altered in configapp/Http/Controllers/Post/IndexController.php
- Class name can be altered in configapp/Http/Controllers/Post/CreateController.php
- Class name can be altered in configapp/Http/Controllers/Post/ShowController.php
- Class name can be altered in configapp/Http/Controllers/Post/UpdateController.php
- Class name can be altered in configapp/Http/Controllers/Post/DeleteController.php
- Class name can be altered in configdatabase/seeds/PostSeeder.php
- Class name can be altered in configdatabase/factories/PostFactory.php
database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.