Bird
Raised Fist0
Rest APIprogramming~10 mins

Why advanced patterns solve real problems in Rest API - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a simple GET endpoint that returns a welcome message.

Rest API
app.get('/welcome', (req, res) => {
  res.[1]('Welcome to the API!');
});
Drag options to blanks, or click blank then click option'
Ajson
Bsend
Cwrite
Dstatus
Attempts:
3 left
💡 Hint
Common Mistakes
Using res.json instead of res.send
Using res.status without sending a response
2fill in blank
medium

Complete the code to parse JSON data from a POST request body.

Rest API
app.use([1]());
Drag options to blanks, or click blank then click option'
Aexpress.json
Bexpress.urlencoded
CbodyParser.text
DbodyParser.raw
Attempts:
3 left
💡 Hint
Common Mistakes
Using urlencoded middleware for JSON data
Using deprecated bodyParser modules
3fill in blank
hard

Fix the error in the route handler to correctly extract the user ID from the URL parameter.

Rest API
app.get('/user/:id', (req, res) => {
  const userId = req.[1].id;
  res.send(`User ID is ${userId}`);
});
Drag options to blanks, or click blank then click option'
Aparams
Bbody
Cquery
Dheaders
Attempts:
3 left
💡 Hint
Common Mistakes
Using req.body instead of req.params
Using req.query for URL parameters
4fill in blank
hard

Fill both blanks to create a middleware that logs the HTTP method and URL of each request.

Rest API
app.use((req, res, next) => {
  console.log(req.[1] + ' ' + req.[2]);
  next();
});
Drag options to blanks, or click blank then click option'
Amethod
Burl
Cpath
Dquery
Attempts:
3 left
💡 Hint
Common Mistakes
Using req.path instead of req.url
Logging req.query which is the query parameters
5fill in blank
hard

Fill all three blanks to create a route that responds with JSON containing the user's name and age if age is greater than 18.

Rest API
app.post('/check', (req, res) => {
  const { name, age } = req.body;
  if (age [1] 18) {
    res.[2]({ [3] });
  } else {
    res.status(403).send('Forbidden');
  }
});
Drag options to blanks, or click blank then click option'
A>
Bjson
Cname, age
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using <= instead of >
Using res.send instead of res.json
Not sending the correct data object

Practice

(1/5)
1. Why do advanced REST API patterns like pagination and consistent error handling matter in real-world applications?
easy
A. They slow down the API response time significantly.
B. They add unnecessary complexity to simple APIs.
C. They make APIs easier to use, maintain, and scale.
D. They are only useful for small projects.

Solution

  1. Step 1: Understand the purpose of advanced patterns

    Advanced patterns like pagination and consistent error handling help organize API responses and interactions.
  2. Step 2: Connect patterns to real-world benefits

    These patterns improve usability, maintainability, and scalability of APIs in practical applications.
  3. Final Answer:

    They make APIs easier to use, maintain, and scale. -> Option C
  4. Quick Check:

    Advanced patterns improve API usability = They make APIs easier to use, maintain, and scale. [OK]
Hint: Think about how patterns help users and developers [OK]
Common Mistakes:
  • Assuming patterns only add complexity
  • Believing patterns slow down APIs
  • Thinking patterns are for small projects only
2. Which of the following is the correct way to indicate pagination in a REST API response header?
easy
A. X-Pagination-Page: 1
B. Pagination-Page: 1
C. Page-Number: 1
D. Page: 1

Solution

  1. Step 1: Recall standard pagination header naming

    Common practice uses custom headers starting with 'X-' like 'X-Pagination-Page' to indicate page number.
  2. Step 2: Compare options to standard naming

    Only 'X-Pagination-Page: 1' follows the common convention for pagination headers.
  3. Final Answer:

    X-Pagination-Page: 1 -> Option A
  4. Quick Check:

    Standard pagination header = X-Pagination-Page: 1 [OK]
Hint: Look for headers starting with 'X-' for custom metadata [OK]
Common Mistakes:
  • Using generic header names without 'X-' prefix
  • Confusing query parameters with headers
  • Assuming 'Page' alone is a header
3. Given this REST API response snippet for pagination:
{
  "data": ["item1", "item2"],
  "page": 2,
  "per_page": 2,
  "total": 5
}

What is the total number of pages available?
medium
A. 2
B. 7
C. 5
D. 3

Solution

  1. Step 1: Identify total items and items per page

    Total items = 5, items per page = 2.
  2. Step 2: Calculate total pages needed

    Divide total by per_page: 5 / 2 = 2.5, round up to 3 pages.
  3. Final Answer:

    3 -> Option D
  4. Quick Check:

    5 items with 2 per page = 3 pages [OK]
Hint: Divide total items by per_page and round up [OK]
Common Mistakes:
  • Using integer division without rounding up
  • Confusing current page with total pages
  • Ignoring total count and using data length
4. You have this error response from a REST API:
{
  "error": "Invalid ID",
  "code": 400
}

But your client expects error details under the key "message" instead of "error". How can you fix this to follow consistent error patterns?
medium
A. Change the API to return {"message": "Invalid ID", "code": 400}
B. Change the client to look for "error" key instead of "message"
C. Ignore the error and retry the request
D. Remove the "code" key from the response

Solution

  1. Step 1: Identify the inconsistency

    The API returns error details under "error" but client expects "message" key.
  2. Step 2: Fix the API response to match client expectation

    Change the API to use "message" key for error details to keep consistent error format.
  3. Final Answer:

    Change the API to return {"message": "Invalid ID", "code": 400} -> Option A
  4. Quick Check:

    Consistent error keys = Use "message" key in API response [OK]
Hint: Match error keys between API and client [OK]
Common Mistakes:
  • Ignoring client expectations
  • Retrying without fixing error format
  • Removing important error code info
5. You want to design a REST API that returns a list of users with optional filtering by age and supports pagination. Which advanced pattern combination best solves this real problem?
hard
A. Use POST method to send filters in the body and ignore pagination.
B. Use query parameters for filters and pagination, and return consistent error messages.
C. Return all users in one response without filters or pagination.
D. Send filters as headers and paginate by splitting responses manually.

Solution

  1. Step 1: Identify best practices for filtering and pagination

    Filters are commonly passed as query parameters; pagination also uses query parameters for page and size.
  2. Step 2: Combine with consistent error handling

    Returning consistent error messages helps clients handle issues gracefully.
  3. Final Answer:

    Use query parameters for filters and pagination, and return consistent error messages. -> Option B
  4. Quick Check:

    Filters + pagination via query params + consistent errors = Use query parameters for filters and pagination, and return consistent error messages. [OK]
Hint: Use query params for filters and pagination [OK]
Common Mistakes:
  • Ignoring pagination causing large responses
  • Using POST instead of GET for filtering
  • Sending filters in headers which is non-standard
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard