Skip to content

Expressive response helpers for Laravel based APIs

License

Notifications You must be signed in to change notification settings

mikebarlow/laravel-response-helpers

Repository files navigation

Author Source Code Latest Version Software License Build Status

A collection of helpers for returning a response from your API more expressively.

Installation

Simply require the package via composer into your Laravel API.

composer require mbarlow/laravel-response-helpers

No extra setup is required. The helper file is autoloaded via the "autoload" attributes of the composer.json file.

Usage

2xx Success

200 OK

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return ok($content, $headers);

201 Created

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return created($content, $headers);

202 Accepted

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return accepted($content, $headers);

204 No Content

    /**
     * @param  array  $headers
     */ 
    return noContent($headers);

3xx Redirection

301 Moved Permanently

    /**
     * @param  string $newUrl
     * @param  array  $headers
     */ 
    return movedPermanently($newUrl, $headers);

302 Found

    /**
     * @param  string $url
     * @param  array  $headers
     */ 
    return found($url, $headers);

303 Found

    /**
     * @param  string $newUrl
     * @param  array  $headers
     */ 
    return seeOther($newUrl, $headers);

307 Temporary Redirect

    /**
     * @param  string $tempUrl
     * @param  array  $headers
     */ 
    return temporaryRedirect($tempUrl, $headers);

4xx Client Errors

400 Bad Request

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return badRequest($content, $headers);

401 Unauthorized

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return unauthorized($content, $headers);

402 Payment Required

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return paymentRequired($content, $headers);

403 Forbidden

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return forbidden($content, $headers);

404 Not Found

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return notFound($content, $headers);

405 Method Not Allowed

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return methodNotAllowed($content, $headers);

406 Not Acceptable

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return notAcceptable($content, $headers);

410 Gone

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return gone($content, $headers);

413 Payload Too Large

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return payloadTooLarge($content, $headers);

422 Unprocessable Entity

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return unprocessableEntity($content, $headers);

426 Upgrade Required

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return upgradeRequired($content, $headers);

429 Too Many Requests

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return tooManyRequests($content, $headers);

5xx Server Errors

500 Internal Server Errors

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return internalServerError($content, $headers);

501 Not Implemented

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return notImplemented($content, $headers);

502 Bad Gateway

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return badGateway($content, $headers);

503 Service Unavailable

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return serviceUnavailable($content, $headers);

504 Gateway Timeout

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return gatewayTimeout($content, $headers);

507 Insufficient Storage

    /**
     * @param  \Illuminate\View\View|string|array|null  $content
     * @param  array  $headers
     */ 
    return insufficientStorage($content, $headers);

Testing

If you wish to run the tests, clone out the repository

git clone [email protected]:mikebarlow/laravel-response-helpers.git

Change to the root of the repository and run composer install with the dev dependencies

cd laravel-response-helpers
composer install

A script is defined in the composer.json to run both the code sniffer and the unit tests

composer run test

Or run them individually as required

./vendor/bin/phpunit

./vendor/bin/phpcs --standard=PSR2 src

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

License

The MIT License (MIT). Please see License File for more information.