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
"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/*'
];
- implement middlewares in routes
You can install the package via composer:
composer require dminustin/laravel-api-factory
composer require --dev DarkaOnLine/L5-Swagger
API Documentation will be available at /api/documentation
http://127.0.0.1:8000/api/documentation
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
php artisan api:factory
php artisan api:create
composer test
Please see CHANGELOG for more information what has changed recently.
The MIT License (MIT). Please see License File for more information.