Bird
Raised Fist0
Expressframework~10 mins

Why REST principles matter in Express - Test Your Understanding

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a basic Express server that listens on port 3000.

Express
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen([1], () => {
  console.log('Server is running');
});
Drag options to blanks, or click blank then click option'
A80
B3000
C5000
D8080
Attempts:
3 left
💡 Hint
Common Mistakes
Using a port number that is already in use or reserved.
Forgetting to pass a number as the port.
2fill in blank
medium

Complete the code to parse incoming JSON request bodies in Express.

Express
const express = require('express');
const app = express();

app.use([1]());

app.post('/data', (req, res) => {
  res.json(req.body);
});
Drag options to blanks, or click blank then click option'
Aexpress.static
Bexpress.urlencoded
Cexpress.json
Dexpress.raw
Attempts:
3 left
💡 Hint
Common Mistakes
Using express.urlencoded() which parses URL-encoded data, not JSON.
Forgetting to use any body parsing middleware.
3fill in blank
hard

Fix the error in the route handler to correctly send a 404 status when a resource is not found.

Express
app.get('/item/:id', (req, res) => {
  const item = database.find(i => i.id === req.params.id);
  if (!item) {
    res.status([1]).send('Not Found');
  } else {
    res.json(item);
  }
});
Drag options to blanks, or click blank then click option'
A404
B200
C500
D301
Attempts:
3 left
💡 Hint
Common Mistakes
Using 200 which means success even when the item is missing.
Using 500 which means server error, not client error.
4fill in blank
hard

Fill both blanks to create a RESTful route that updates an item by ID using the correct HTTP method and URL pattern.

Express
app.[1]('/items/[2]', (req, res) => {
  // update item logic here
  res.send('Item updated');
});
Drag options to blanks, or click blank then click option'
Aput
Bpost
Cpatch
D:id
Attempts:
3 left
💡 Hint
Common Mistakes
Using POST which is for creating resources.
Omitting the ID parameter in the URL.
5fill in blank
hard

Fill all three blanks to create a RESTful Express route that deletes an item by ID and sends a 204 status code.

Express
app.[1]('/items/[2]', (req, res) => {
  // delete item logic
  res.status([3]).send();
});
Drag options to blanks, or click blank then click option'
Adelete
B:itemId
C204
D200
Attempts:
3 left
💡 Hint
Common Mistakes
Using 200 status code which usually includes a response body.
Using POST or PUT instead of DELETE.

Practice

(1/5)
1. Why is it important to follow REST principles when building an Express API?
easy
A. It requires using XML instead of JSON for data exchange.
B. It forces the use of only POST requests for all actions.
C. It makes the API easier to understand and use by clients.
D. It limits the API to only one endpoint for all resources.

Solution

  1. Step 1: Understand REST principles

    REST encourages clear use of HTTP methods and resource URLs to make APIs intuitive.
  2. Step 2: Connect REST to client ease

    Following REST helps clients know how to interact with the API without confusion.
  3. Final Answer:

    It makes the API easier to understand and use by clients. -> Option C
  4. Quick Check:

    REST improves API clarity = A [OK]
Hint: REST means clear, simple API design for clients [OK]
Common Mistakes:
  • Thinking REST requires only POST requests
  • Believing REST forces XML data format
  • Assuming REST limits to one endpoint
2. Which HTTP method should you use in Express to retrieve data from a resource following REST principles?
easy
A. GET
B. PUT
C. DELETE
D. POST

Solution

  1. Step 1: Recall HTTP methods in REST

    GET is used to retrieve or read data without changing it.
  2. Step 2: Match method to action

    Since retrieving data means reading, GET is the correct method.
  3. Final Answer:

    GET -> Option A
  4. Quick Check:

    Retrieve data = GET [OK]
Hint: GET is for reading data, POST for creating [OK]
Common Mistakes:
  • Using POST to fetch data
  • Confusing DELETE with data retrieval
  • Using PUT instead of GET for reading
3. Consider this Express route following REST principles:
app.delete('/users/:id', (req, res) => {
  // delete user logic
  res.send('User deleted');
});

What HTTP method and URL would a client use to delete user with id 5?
medium
A. DELETE /users/5
B. POST /users/5
C. GET /users/5
D. PUT /users/5

Solution

  1. Step 1: Identify the route method and path

    The route uses app.delete with path '/users/:id', so it expects DELETE requests to /users/{id}.
  2. Step 2: Match method and URL for deleting user 5

    To delete user 5, client sends DELETE request to /users/5.
  3. Final Answer:

    DELETE /users/5 -> Option A
  4. Quick Check:

    Delete user = DELETE /users/5 [OK]
Hint: Delete uses DELETE method with resource URL [OK]
Common Mistakes:
  • Using GET or POST to delete
  • Confusing PUT with DELETE
  • Using wrong URL path
4. You wrote this Express route to update a user:
app.post('/users/:id', (req, res) => {
  // update user logic
  res.send('User updated');
});

Why might this not follow REST principles correctly?
medium
A. The URL should not include the user id.
B. POST should not be used for updating existing resources.
C. The response message is incorrect.
D. The route should use GET instead of POST.

Solution

  1. Step 1: Understand REST method usage

    POST is usually for creating new resources, while PUT or PATCH is for updating existing ones.
  2. Step 2: Identify correct method for update

    Updating user should use PUT or PATCH, not POST, to follow REST.
  3. Final Answer:

    POST should not be used for updating existing resources. -> Option B
  4. Quick Check:

    Update uses PUT/PATCH, not POST [OK]
Hint: Use PUT/PATCH to update, not POST [OK]
Common Mistakes:
  • Thinking POST is for updates
  • Ignoring URL with resource id
  • Confusing GET with update
5. You want to design an Express API that follows REST principles for managing books. Which of these URL and method combinations correctly follows REST for updating a book's details?
hard
A. DELETE /books/:id
B. POST /books/update
C. GET /books/:id/update
D. PUT /books/:id

Solution

  1. Step 1: Identify REST method for updating

    PUT is the standard HTTP method to update an existing resource fully.
  2. Step 2: Check URL pattern for resource

    Using /books/:id targets a specific book by its id, which is correct REST style.
  3. Step 3: Evaluate other options

    POST /books/update is not RESTful because it uses a verb in URL; GET is for reading, DELETE is for removal.
  4. Final Answer:

    PUT /books/:id -> Option D
  5. Quick Check:

    Update book = PUT /books/:id [OK]
Hint: Update uses PUT with resource ID in URL [OK]
Common Mistakes:
  • Using POST with action verbs in URL
  • Using GET for updates
  • Confusing DELETE with update