kleijnweb/php-api-descriptions
Parse and handle PHP API Description documents (OpenAPI-like) with utilities for loading, validating, and working with structured API metadata. Useful for tooling that needs to read API specs and generate clients, docs, or integrations.
darkaonline/l5-swagger for enhanced tooling.ValidateApiContract).api_resources or custom serializers).PHPUnit or Pest for end-to-end validation.spatie/laravel-api or filp/whoops provide similar benefits with lower risk?Route::resource).laravel/pint, phpstan, and psalm for static analysis of contracts./v1/users) and define its OpenAPI contract.zircote/swagger-php for OpenAPI generation from PHP docs.beberlei/doctrineextensions if ORM mapping is needed later.json, mbstring (standard in Laravel). No heavy dependencies.laravel/fortify (auth): Ensure contract validation doesn’t block auth flows.spatie/laravel-permission (RBAC): Contracts should reflect permission scopes.Illuminate/Cache) to reduce runtime parsing.ValidateApiContract middleware for protected routes.ApiContractTransformer to AppServiceProvider boot method.ApiContractTestCase).darkaonline/l5-swagger.api/contracts/v1/users.yaml).symfony/yaml for schema validation during CI (e.g., GitHub Actions).Deprecation: 2024-12-31).roave/security-advisories).Illuminate/Log).tightenco/ziggy for client-side URL validation if contracts include paths.Illuminate/Cache (e.g., Redis).laravel-queue) for async APIs.| Failure Scenario | Mitigation |
|---|---|
| Contract parsing errors | Fallback to lenient mode with logging (e.g., try-catch in middleware). |
| Schema drift | CI checks for contract/code mismatches (e.g., phpstan rules). |
| High validation latency | Rate-limit contract checks or use edge caching (e.g., Cloudflare Workers). |
| Deprecated API usage | Return 410 Gone for deprecated endpoints; log usage analytics. |
| Third-party API contract changes | Monitor upstream contracts (e.g., webhook.site for change notifications). |
redhat.vscode-yaml + OpenAPI snippets).php artisan api:contract:generate).laravel-debugbar or spatie/laravel-monitoring.How can I help you explore Laravel packages today?