Route valid and missing resources
See this course’s project requirements
A localhost-only read-only JSON book API with defined routes, 200/404 responses, headers and an automated client contract test.
Keep your working files in your own notebook or software. Save a private description, checklist, and work link in My Proof.
What to include
- A three-route API contract with status and typed body.
- A loopback-only server boundary record.
- A checked json response with matching headers.
- A routing test matrix with exact-path boundaries.
- A real local transport test with bounded cleanup.
- A complete api handoff with a controlled contract change.
Review and revise
Use these criteria to check your work and choose what to improve.
- The implementation or declared simulation follows the supplied contract and retains inspectable original inputs.
- Normal, boundary and rejected cases are recorded with expected versus observed results.
- The changed case has a correct explanation and does not rely on hidden state.
- The project includes source, outputs, instructions and honest tool, privacy and verification limits.
Want more background?
The idea in everyday life
The exact paths /books and /books/2 succeed; /books/2/ and /books/2?mode=short are unknown under this simple contract.
Route checks must distinguish known identifiers from similar-looking paths. An exact contract can reject queries, extra slashes and unknown IDs without guessing what the caller intended.
Route valid and missing resources — original worked practice
Route checks must distinguish known identifiers from similar-looking paths. An exact contract can reject queries, extra slashes and unknown IDs without guessing what the caller intended.
The exact paths /books and /books/2 succeed; /books/2/ and /books/2?mode=short are unknown under this simple contract.
1. Step 1
Follow the exact/books branch.
You should see: It returns the list.
This keeps the rule and its observable result together.
2. Step 2
Trace/books/2 into BOOKS key 2.
You should see: It returns the book object.
This keeps the rule and its observable result together.
3. Step 3
Request the exact unknown paths /books/2?mode=short and /books/2/; each is a valid HTTP path string that this deliberately exact router must return as 404.
You should see: An unrecognized path returns 404.
This keeps the rule and its observable result together.
4. Step 4
Add the missing and extra-path cases to the contract matrix.
You should see: A routing test matrix with exact-path boundaries.
This keeps the rule and its observable result together.
What to finish
A routing test matrix with exact-path boundaries.
Watch for this
Returning HTTP 200 with an error object for every unknown resource despite the declared 404 contract.
How can I tell I understand it?
Explain and demonstrate the required distinction: Route checks must distinguish known identifiers from similar-looking paths. An exact contract can reject queries, extra slashes and unknown IDs without guessing what the caller intended. Show a changed input and the expected result without weakening this contract.
Quick knowledge check
Answer all 3 questions. Get at least 2 right and the lesson completes automatically.
You’ll get an explanation for each answer. Signed in? Your results save to your account.
Pass the check. We’ll save the progress.
Answer all 3 questions above and get at least 2 right. You can review the explanations and try again.
Go to the knowledge checkTools, templates, and lesson sources
Tools and templates
Tools open in a new tab so you can keep your place here.
Sources and further reading
Explore the references behind this lesson.
Source & access notes · checked 2026-10-01
Relevant documented module/API behavior inspected during expansion authoring; actual execution evidence is recorded separately. No grant eligibility is established.
Access: Official page retrieved with the web reader on 2026-10-01. Documentation reading does not certify execution in every native tool or browser.
Reuse: Original local practice files, fictional data, worked examples and questions. Concepts paraphrased and linked; source exercises are not copied.
Source & access notes · checked 2026-10-01
Relevant documented module/API behavior inspected during expansion authoring; actual execution evidence is recorded separately. No grant eligibility is established.
Access: Official page retrieved with the web reader on 2026-10-01. Documentation reading does not certify execution in every native tool or browser.
Reuse: Original local practice files, fictional data, worked examples and questions. Concepts paraphrased and linked; source exercises are not copied.
Report a problem with this lesson
Tell us what went wrong. Please leave out personal information and private project contents.