Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Lansoweb/api-problem
PHP middleware that returns a json formatted response in case of error
https://github.com/Lansoweb/api-problem
Last synced: 3 months ago
JSON representation
PHP middleware that returns a json formatted response in case of error
- Host: GitHub
- URL: https://github.com/Lansoweb/api-problem
- Owner: Lansoweb
- License: mit
- Created: 2015-11-22T13:44:52.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2019-04-01T16:22:10.000Z (almost 6 years ago)
- Last Synced: 2024-07-31T18:15:18.716Z (5 months ago)
- Language: PHP
- Size: 18.6 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-http - los/api-problem
README
# Api Problem Middleware for PHP
This middleware returns a formatted json in case of error. It's inspired on the [ApiProblem](https://github.com/zfcampus/zf-api-problem) library, but with fewer dependencies.
## Usage
Just add the middleware as the last in your application.
For example:
```php
$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](https://github.com/zendframework/zend-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:
```php
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.