Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build an API that survives real-world clients: idempotency keys on the create endpoint (a retried POST returns the original result with no duplicate), a consistent machine-readable error model (e.g. Problem Details), rate-limit headers plus correct 429/Retry-After, and a documented versioning/deprecation approach. Demonstrate that a retried create is safe.
Idempotency-Key supported and documented; a retried create provably returns the original result, no duplicate.
Consistent machine-readable errors with stable codes; all validation errors returned at once.
Rate-limit headers plus correct 429 + Retry-After; limits enforced per key.
A documented versioning + deprecation approach; additive vs breaking change understood.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# Evolvable, idempotent payments-style API ## Goal Build an API that survives real-world clients: idempotency keys on the create endpoint (a retried POST returns the original result with no duplicate), a consistent machine-readable error model (e.g. Problem Details), rate-limit headers plus correct 429/Retry-After, and a documented versioning/deprecation approach. Demonstrate that a retried create is safe. ## Acceptance criteria - [ ] Idempotency: Idempotency-Key supported and documented; a retried create provably returns the original result, no duplicate. - [ ] Error model: Consistent machine-readable errors with stable codes; all validation errors returned at once. - [ ] Rate-limit contract: Rate-limit headers plus correct 429 + Retry-After; limits enforced per key. - [ ] Evolution: A documented versioning + deprecation approach; additive vs breaking change understood. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.