cerbero/json-api-error

Laravel package to standardize API errors in compliance with the JSON:API spec.

0.3.3 2024-03-12 23:18 UTC

This package is auto-updated.

Last update: 2024-04-13 01:56:51 UTC


README

Author PHP Version Laravel Version Build Status Coverage Status Quality Score PHPStan Level Latest Version Software License PER Total Downloads

{
  "errors": [
    {
      "status": "422",
      "title": "Unprocessable Content",
      "detail": "The name field must be a string.",
      "source": {
        "pointer": "/name"
      }
    },
    {
      "status": "422",
      "title": "Unprocessable Content",
      "detail": "The name field must be at least 2 characters.",
      "source": {
        "pointer": "/name"
      }
    }
  ]
}

Laravel package to standardize API error responses in compliance with the JSON:API spec, providing:

  • consistency: ensure uniform API error responses across all Laravel apps, adhering to a widely used standard
  • automation: handle Laravel-specific and common HTTP exceptions automatically
  • simplicity: focus solely on error responses without the need to implement the full JSON:API spec
  • zero configuration: install the package with no additional configuration required
  • customization: optionally register custom handlers, map errors to HTTP statuses or merge default data
  • localization: translate JSON:API errors into any language
  • testability: test error responses using the built-in testing tools
  • debugging: inspect the original message and trace when an unexpected error occurs

📦 Install

Via Composer:

composer require cerbero/json-api-error

🔮 Usage

Note

Work in progress... 🏗️

📆 Change log

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

🧪 Testing

composer test

💞 Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

🧯 Security

If you discover any security related issues, please email andrea.marco.sartori@gmail.com instead of using the issue tracker.

🏅 Credits

⚖️ License

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