los / api-problem
PHP middleware that returns a json formatted response in case of error
Installs: 18 003
Dependents: 1
Suggesters: 0
Security: 0
Stars: 5
Watchers: 3
Forks: 2
Open Issues: 0
Requires
- php: ^7.0 || ^7.1
- psr/http-message: ~1.0
- zendframework/zend-diactoros: ^1.3
- zendframework/zend-stratigility: ^2.0.1
Requires (Dev)
- container-interop/container-interop: ^1.2.0
- phpunit/phpunit: ^5.0 || ^6.0
- satooshi/php-coveralls: ~0.6
- squizlabs/php_codesniffer: ^2.3
- zendframework/zend-expressive-tooling: ^0.3.2
This package is auto-updated.
Last update: 2024-11-29 04:50:36 UTC
README
This middleware returns a formatted json in case of error. It's inspired on the ApiProblem library, but with fewer dependencies.
Usage
Just add the middleware as the last in your application.
For example:
$app->pipe(new \LosMiddleware\ApiProblem\ApiProblem());
It will return:
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Method Not Allowed",
"status": 405,
"detail": "error",
"code": "14868ef1-7ef4-4feb-a7ae-9a12c9097375"
}
Zend Expressive
If you are using expressive-skeleton, you can copy config/los-api-problem.global.php.dist
to config/autoload/los-api-problem.global.php
.
It uses the FinalHandler feature from Expressive. If you prefer to use other FinalHandler, you can manually add this middleware:
return [ 'dependencies' => [ 'invokables' => [ LosMiddleware\ApiProblem\ApiProblem::class => LosMiddleware\ApiProblem\ApiProblem::class, ], ], 'middleware_pipeline' => [ 'error' => [ 'middleware' => [ LosMiddleware\ApiProblem\ApiProblem::class, ] 'error' => true, ], ], ];
But 404 errors will not be handled but this, only by the FinalHandler.