# The same requests against both layouts --- bylayer --- GET /books -> 200 [{"id":1,"title":"Effective Java","author":"Joshua Bloch","pages":416},{"id":2,"title":"Java Concurrency in Practice","author":"Brian Goetz","pages":384}] GET /books/1 -> 200 {"id":1,"title":"Effective Java","author":"Joshua Bloch","pages":416} GET /books/99 -> 404 {"detail":"Book 99 not found","instance":"/books/99","status":404,"title":"Not Found"} POST /books -> 201 {"id":3,"title":"Clean Code","author":"Robert Martin","pages":464} POST /books -> 400 {"timestamp":"2026-10-21T16:43:19.747Z","status":400,"error":"Bad Request","path":"/books"} --- byfeature --- GET /books -> 200 [{"id":1,"title":"Effective Java","author":"Joshua Bloch","pages":416},{"id":2,"title":"Java Concurrency in Practice","author":"Brian Goetz","pages":384}] GET /books/1 -> 200 {"id":1,"title":"Effective Java","author":"Joshua Bloch","pages":416} GET /books/99 -> 404 {"detail":"Book 99 not found","instance":"/books/99","status":404,"title":"Not Found"} POST /books -> 201 {"id":3,"title":"Clean Code","author":"Robert Martin","pages":464} POST /books -> 400 {"timestamp":"2026-10-21T16:43:20.250Z","status":400,"error":"Bad Request","path":"/books"} POST /loans -> 201 {"id":1,"bookId":2,"bookTitle":"Java Concurrency in Practice","member":"Asha"} POST /loans -> 404 {"detail":"Book 7 not found","instance":"/loans","status":404,"title":"Not Found"} GET /loans -> 200 [{"id":1,"bookId":2,"bookTitle":"Java Concurrency in Practice","member":"Asha"}] --- comparison --- status codes and bodies identical for the five shared requests: true