Overview
A notes resource with search and pagination and a single error shape. The same HTTP semantics as a framework, built by hand.
Highlights
- 53 tests: 42 in-process against sqlite::memory: and 11 over HTTP via php -S and cURL.
- SQL injection prevented with bound parameters; a test posts a DROP TABLE payload and asserts the table survives.
- Correct semantics: 400 vs 422, 404 vs 405 with Allow, 415, PUT replaces vs PATCH merges.