dminustin / laravel-api-factory
All-in-one flexible and customizable code generator for Laravel framework that will save you time. This tool will help you generate resources like controllers, routes, swagger doc, postman collection.
Requires
- php: 8.0|^8.0
- illuminate/console: >=5.1
- illuminate/contracts: >=5.1
- illuminate/database: >=5.1
- illuminate/filesystem: >=5.1
- illuminate/support: >=5.1
- symfony/yaml: *
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.13
- friendsofphp/php-cs-fixer: ^3.16
- nunomaduro/larastan: ^2.5
- orchestra/testbench: ^7.18
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.6
README
All-in-one flexible and customizable code generator for Laravel framework that will save you time. This tool will help you generate resources like controllers, routes, swagger doc, postman collection.
It makes:
- Controllers
- Actions
- Routes
- Swagger Documentation
- Postman collection
- Unit tests for Actions
All my Laravel`s projects I have one pain: there is necessary to create routes, controllers, validators and such more routines. From project to project I have to do same actions.
For this purpose, I wrote a composer component that helps me to make easily all of my tasks. I hope that my component will be helpful for other Laravel programmers.
I will be glad to any feedback, comments, suggestions
The general philosophy is:
"Actions" are contains all functionality, you may want to use it without HTTP requests, for example, in workers
"Controllers" must call "Actions" for any actions and must return an action result. No logic in controllers
Default Directory/files structure:
config
| api-factory.php
app
| routes
| example.yaml
| http
| ApiFactory
| Actions
| ...
| Controllers
| ...
Paths and filenames can changed in the api-factory.php file
Routes directives you can see in ROUTES.
Controllers are extends the ApiFactoryController
Actions are extends the ApiFactoryAction
You can change parent classes in stubs
Do not forget to add an exception in your app/Http/Middleware/VerifyCsrfToken.php file
//just example protected $except = [ '/api/*' ];
Todo
- implement middlewares in routes
Installation
You can install the package via composer:
composer require dminustin/laravel-api-factory
Swagger documentation
composer require --dev DarkaOnLine/L5-Swagger
API Documentation will be available at /api/documentation
http://127.0.0.1:8000/api/documentation
Configure
php artisan vendor:publish --tag=api-factory
Change the configuration file config/api-factory.php
You can change ./stubs files
- api_factory_action
- api_factory_controller
- api_factory_router
Usage
php artisan api:factory
Step-by-step route creation
php artisan api:create
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
License
The MIT License (MIT). Please see License File for more information.