laravel:api-surface-evolution
API Surface Evolution
Design for change without breaking clients.
Versioning Strategy
- Choose explicit versioning (URI
/v1/...or header negotiation) - Default to additive changes; never break a released contract
DTOs & Transformers
- Define versioned DTOs; map from models/services via transformers
- Keep controller thin—validate → transform → respond
Deprecations
- Mark fields as deprecated in docs and responses (e.g., headers)
- Provide sunset timelines; add metrics to see remaining usage
Testing
- Contract tests per version (request/response shapes)
- Backward compatibility tests for commonly used flows
More from jpcaparas/superpowers-laravel
laravel:blade-components-and-layouts
Compose UIs with Blade components, slots, and layouts; keep templates pure and testable
90laravel:routes-best-practices
Keep routes clean and focused on mapping requests to controllers; avoid business logic, validation, or database operations in route files
89laravel:quality-checks
Unified quality gates for Laravel projects; Pint, static analysis (PHPStan/Psalm), Insights (optional), and JS linters; Sail and non-Sail pairs provided
80laravel:performance-caching
Use framework caches and value/query caching to reduce work; add tags, locks, and explicit invalidation strategies for correctness
77laravel:eloquent-relationships
Define clear relationships and load data efficiently; prevent N+1, use constraints, counts/sums, and pivot syncing safely
76laravel:tdd-with-pest
Apply RED-GREEN-REFACTOR with Pest or PHPUnit; use factories, feature tests for HTTP, and parallel test runners; verify failures before implementation
76