Download the PHP package ddiimmkkaass/lumen-api-generator without Composer
On this page you can find all versions of the php package ddiimmkkaass/lumen-api-generator. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ddiimmkkaass/lumen-api-generator
More information about ddiimmkkaass/lumen-api-generator
Files in ddiimmkkaass/lumen-api-generator
Package lumen-api-generator
Short Description Two simple tools for building REST APIs with fractal: console generator and API skeleton
License MIT
Homepage https://github.com/DDiimmkkaass/lumen-api-generator
Informations about the package lumen-api-generator
This is the full copy of arrilot/laravel-api-generator adapted for Lumen
Lumen Api Generator
Two simple tools for building REST APIs with fractal: console generator and API skeleton
Introduction
This package provides two features
-
Console generator which creates Controller, Fractal Transformer and routes in a single command.
- Basic REST API skeleton that can be really helpful if you need something standard. It's 100% optional.
If you do not use Fractal for your transformation layer, this package is probably not the right choice for you.
Installation
1) Run
2) Register a service provider in the app.php
configuration file
3) Copy basic folder structure to app/Api and check what you got there. If you need you can use different paths later.
Usage
Generator
The only console command that is added is .
Imagine you need to create a rest api to list/create/update etc users from users table. To achieve that you need to do lots of boilerplate operations - create controller, transformer, set up needed routes.
does all the work for you.
1) You may have noticed that after installation you already have a routes file app/Api/routes.php
which looks like that:
Feel free to change it if you like.
The generator adds to the end of this file.
As you can see it's smart enough to detect some route groups and treat this situation properly.
2) Then the generator creates a controller that extends base api controller.
You can customize this stub as much as you want.
3) Finally the generator creates a fractal Transformer
This stub is customizable too.
Skeleton
You may have noticed that controller which has just been generated includes two public methods - model()
and transformer()
That's because those methods are the only thing that you need in your controller to set up a basic REST API if you use the Skeleton.
The list of routes that are available out of the box:
GET api/v1/users
GET api/v1/users/{id}
POST api/v1/users
PUT api/v1/users/{id}
DELETE api/v1/users/{id}
Request and respone format is json
Fractal includes are supported via $_GET['include'].
Validation rules for create and update can be set by overwriting rulesForCreate
and rulesForUpdate
in your controller.
This skeleton is not a silver bullet but in many cases it can be either exactly what you need or can be used as a decent starting point for your api.
You can check https://github.com/DDiimmkkaass/lumen-api-generator/blob/master/src/Skeleton/BaseController.php for more info.
If you don't like the Skeleton just stop inheriting it in the base controller - Api\Controllers\Controller
and overwrite the controller stub in your config to remove model()
and transformer()
methods.
Configuration
All paths and generator's stubs are configurable.
https://github.com/DDiimmkkaass/lumen-api-generator/blob/master/src/config/config.php