Skip to content
This repository has been archived by the owner on Mar 5, 2020. It is now read-only.

mstaack/lumen-api-starter

Repository files navigation

Lumen 5.8 API Starter with Paseto

Build Status

Notes

  • Comes with make & route command for all your needs
  • Uses jwt token alternative paseto. Read Paseto

Included Packages

Installation

  • run git clone git@github.com:mstaack/lumen-api-starter.git
  • reinit your repository with rm -rf .git && git init
  • run composer install to install dependencies (consider using homestead via vagrant up)
  • copy env.example to .env
  • Setup your application & auth keys with composer keys & check .envfile (automatically done via composer hook)
  • run migrations & seeders with artisan migrate --seed (within your vm using vagrant ssh)
  • A default user is created during seeding: demo@demo.com / password
  • To quickly start a dev server run ./artisan serve (or via homestead.test for the vm)
  • Also consider running composer meta when adding models for better autocompletion (automatically done via composer hook)
  • Run included tests with phpunit within vagrant's code directory
  • Generate your api docs with artisan apidoc:generate

Routes

➜  lumen-api-starter git:(update-5.8) ✗ ./artisan route:list
+------+--------------------------------+-----------------------+-------------------------------------+-----------------+--------------------------+
| Verb | Path                           | NamedRoute            | Controller                          | Action          | Middleware               |
+------+--------------------------------+-----------------------+-------------------------------------+-----------------+--------------------------+
| GET  | /                              |                       | None                                | Closure         |                          |
| POST | /auth/register                 | auth.register         | App\Http\Controllers\AuthController | register        |                          |
| POST | /auth/login                    | auth.login            | App\Http\Controllers\AuthController | login           |                          |
| GET  | /auth/verify/{token}           | auth.verify           | App\Http\Controllers\AuthController | verify          |                          |
| POST | /auth/password/forgot          | auth.password.forgot  | App\Http\Controllers\AuthController | forgotPassword  |                          |
| POST | /auth/password/recover/{token} | auth.password.recover | App\Http\Controllers\AuthController | recoverPassword |                          |
| GET  | /auth/user                     | auth.user             | App\Http\Controllers\AuthController | getUser         | auth                     |
| GET  | /admin                         |                       | None                                | Closure         | auth, role:administrator |
+------+--------------------------------+-----------------------+-------------------------------------+-----------------+--------------------------+

Artisan Commands

➜  lumen-api-starter git:(master) ./artisan 
Laravel Framework Lumen (5.6.4) (Laravel Components 5.6.*)

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
      --env[=ENV]       The environment the command should run under
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  clear-compiled            Remove the compiled class file
  dump-server               Start the dump server to collect dump information.
  help                      Displays help for a command
  list                      Lists commands
  migrate                   Run the database migrations
  optimize                  Optimize the framework for better performance
  serve                     Serve the application on the PHP development server
  tinker                    Interact with your application
 auth
  auth:clear-resets         Flush expired password reset tokens
  auth:generate-paseto-key  Creates a new authentication key for paseto
 cache
  cache:clear               Flush the application cache
  cache:forget              Remove an item from the cache
  cache:table               Create a migration for the cache database table
 clockwork
  clockwork:clean           Cleans Clockwork request metadata
 db
  db:seed                   Seed the database with records
 ide-helper
  ide-helper:eloquent       Add \Eloquent helper to \Eloquent\Model
  ide-helper:generate       Generate a new IDE Helper file.
  ide-helper:meta           Generate metadata for PhpStorm
  ide-helper:models         Generate autocompletion for models
 key
  key:generate              Set the application key
 make
  make:command              Create a new Artisan command
  make:controller           Create a new controller class
  make:event                Create a new event class
  make:job                  Create a new job class
  make:listener             Create a new event listener class
  make:mail                 Create a new email class
  make:middleware           Create a new middleware class
  make:migration            Create a new migration file
  make:model                Create a new Eloquent model class
  make:policy               Create a new policy class
  make:provider             Create a new service provider class
  make:request              Create a new form request class
  make:resource             Create a new resource
  make:seeder               Create a new seeder class
  make:test                 Create a new test class
 migrate
  migrate:fresh             Drop all tables and re-run all migrations
  migrate:install           Create the migration repository
  migrate:refresh           Reset and re-run all migrations
  migrate:reset             Rollback all database migrations
  migrate:rollback          Rollback the last database migration
  migrate:status            Show the status of each migration
 queue
  queue:failed              List all of the failed queue jobs
  queue:failed-table        Create a migration for the failed queue jobs database table
  queue:flush               Flush all of the failed queue jobs
  queue:forget              Delete a failed queue job
  queue:listen              Listen to a given queue
  queue:restart             Restart queue worker daemons after their current job
  queue:retry               Retry a failed queue job
  queue:table               Create a migration for the queue jobs database table
  queue:work                Start processing jobs on the queue as a daemon
 route
  route:list                Display all registered routes.
 schedule
  schedule:run              Run the scheduled commands

Generated Docs Screenshot

image