phapi/middleware-content-negotiation

This package is abandoned and no longer maintained. No replacement package was suggested.

Content Negotiation Middleware used by the Phapi Framework.

1.0.1 2015-09-02 09:08 UTC

This package is not auto-updated.

Last update: 2021-02-05 22:43:58 UTC


README

Build status Code Climate Test Coverage

The Content Negotiation Middleware contains of one middleware designed to handle format negotiations. It takes the Accept header and parses it, matches it against the list of supported mime types (registered by serializers) and finally sets the proper Content-Type header on the response object.

Installation

This middleware is by default included in the Phapi Framework but if you need to install it it's available to install via Packagist and Composer.

$ php composer.phar require phapi/middleware-content-negotiation:1.*

Configuration

The middleware itself does not have any configuration options.

See the configuration documentation for more information about how to configure the integration with the Phapi Framework.

Usage

The format negotiation middleware sets the proper Content-Type header on the response object. The header value can be accessed by using the getHeaderLine() method:

<?php
/*
 * Get the response content type header that has the negotiated header.
 *
 * Returns the header value including charset.
 * Example: application/json;charset=utf-8
 */
$mimeType = $response->getHeaderLine('Content-Type');

The middleware also sets the mime type and any parameters included in the accept header as attributes on the request object:

<?php
// Get the negotiated mime type:
$mimeType = $request->getAttribute('Accept');

// Get parameters (as an array) included in the accept header
$acceptParameters = $request->getAttribute('Accept-Parameters');

Exceptions

The middleware will throw a 406 NotAcceptable if the requested mime type isn't supported. An 500 InternalServerError is thrown if no serializers are found.

If the requested mime type isn't supported the first mime type in the first registered serializers will be used to serialize the error message sent to the client.

Phapi

This middleware is a Phapi package used by the Phapi Framework. The middleware are also PSR-7 compliant and implements the Phapi Middleware Contract.

License

Content Negotiation Middleware is licensed under the MIT License - see the license.md file for details

Contribute

Contribution, bug fixes etc are always welcome.