middlewares/payload

Middleware to parse the body of the request with support for json, csv and url-encode

v2.1.1 2018-11-08 08:45 UTC

README

Latest Version on Packagist Software License Build Status Quality Score Total Downloads SensioLabs Insight

Parses the body of the request if it's not parsed and the method is POST, PUT or DELETE. It contains the following components to support different formats:

Failure to parse the body will result in a Middlewares\Utils\HttpErrorException being thrown. See middlewares/utils for additional details.

Requirements

Installation

This package is installable and autoloadable via Composer as middlewares/payload.

composer require middlewares/payload

JsonPayload

Parses the json payload of the request.

$dispatcher = new Dispatcher([
    (new Middlewares\JsonPayload())
        ->associative(false)
        ->depth(64)
]);

$response = $dispatcher->dispatch(new ServerRequest());

Contains the following options to configure the json_decode function:

associative

Enabled by default, convert the objects into associative arrays.

Type Required Description
bool No true (or none) to enable, false to disable

depth

To configure the recursion depth.

Type Required Description
int Yes The new value

options

To pass the bitmask of json_decode options: JSON_BIGINT_AS_STRING (enabled by default), JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR.

Type Required Description
int Yes The new options

methods

To configure the allowed methods. By default only the requests with the method POST, PUT, PATCH, DELETE, COPY, LOCK, UNLOCK are handled.

Type Required Description
string[] Yes Array with the new allowed methods (in uppercase)

contentType

To configure all Content-Type headers allowed in the request. By default is application/json

Type Required Description
string[] Yes Array with the new Content-Type headers allowed

override

To override the previous parsed body if exists (false by default)

Type Required Description
bool No true (or none) to override the, false to don't

UrlEncodePayload

Parses the url-encoded payload of the request.

$dispatcher = new Dispatcher([
    new Middlewares\UrlEncodePayload()
]);

$response = $dispatcher->dispatch(new ServerRequest());

methods

To configure the allowed methods. By default only the requests with the method POST, PUT, PATCH, DELETE, COPY, LOCK, UNLOCK are handled.

Type Required Description
string[] Yes Array with the new allowed methods (in uppercase)

contentType

To configure all Content-Type headers allowed in the request. By default is application/x-www-form-urlencoded

Type Required Description
string[] Yes Array with the new Content-Type headers allowed

override

To override the previous parsed body if exists (false by default)

Type Required Description
bool No true (or none) to override the, false to don't

CsvPayload

CSV payloads are supported by the middlewares/csv-payload package.

Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.

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