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.

1.3.0.4 2023-05-07 13:50 UTC

This package is auto-updated.

Last update: 2024-05-07 16:16:11 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

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.