New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

wronx/lumen-rest-object-fetch-middleware

Simple Lumen middleware for simple fetching simple objects in simple REST API endpoints
1,053
Install
composer require wronx/lumen-rest-object-fetch-middleware
Latest Version:v0.1.1
PHP:>=7.1
Laravel:5
License:WTFPL
Last Updated:Oct 15, 2018
Links: GitHub  ·  Packagist
Maintainer: WRonX

Lumen REST Object Fetch Middleware

IMPORTANT: This package is a work in progress, it it not stable by any means.
Use responsibly! Or don't use at all and wait for v1.0.

The purpose of this project

It was created to avoid repetitive 404 (and other) checks when hitting CRUD endpoints of API.

Is it any good?

Yes

(well, it will be in stable version... I hope...)

Installation

  1. Install the package with Composer:
composer require wronx/lumen-rest-object-fetch-middleware
  1. Enable it in bootstrap/app.php:
$app->routeMiddleware([
// ...
                          'object' => WRonX\RestObjectFetch\RestObjectFetchMiddleware::class,
                      ]);

Usage

  1. In routes/web.php assign it to route which requires id parameter, giving it model's class name:
$router->group([
                   'prefix'     => '/something/{id:[0-9]+}',
                   'middleware' => 'object:Something', // <--- HERE
               ],
    function() use ($router) {
        $router->get('', [
            'as'   => 'show_something',
            'uses' => 'SomethingController@show',
        ]);
        
        $router->patch('', [
            'as'   => 'edit_something',
            'uses' => 'SomethingController@update',
        ]);
        
        $router->delete('', [
            'as'   => 'delete_something',
            'uses' => 'SomethingController@destroy',
        ]);
    });
  1. In Controller methods that are covered by this middleware you don't have to check if object exists and you don't have to fetch it again from DB:
    public function show(Request $request) {
        $something = $request->attributes->get('fetchedObject');
        
        return new JsonResponse($something);
    }

Contributing

If you want to contribute, please wait. Until stable version arrives I want to shape this package in my specific way. Later on, pull requests will be welcome.

License:

Copyright © 2016 github.com/WRonX
This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See http://www.wtfpl.net/ for more details

Related Packages

nebo15/lumen.rest

Components for fast building REST API for Lumen

3,761 1
lujo/lumen-rest

Lumen package for creating simple REST API

97 1
fatindeed/emoji-helper

Emoji helper is a tool for you to escape emoji characters.

10,130 0
gwsn/rest

Rest Controller

109 0
tuuke/laravel-rest

Fully fledged REST system integrated with Laravel and Lumen.

1 0

Version History

Version Released PHP Laravel License
v0.1.1 >=7.1 ^5.7 WTFPL
v0.1 >=7.1 ^5.6 WTFPL