Bird
Raised Fist0
Rest APIprogramming~20 mins

PUT for full replacement in Rest API - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PUT Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the result of a PUT request replacing a resource?

Consider a REST API where a resource at /users/123 currently has the data:

{"name": "Alice", "age": 30, "city": "New York"}

A client sends a PUT request to /users/123 with the body:

{"name": "Alice", "age": 31}

What will be the state of the resource after this PUT request?

A{"name": "Alice", "age": 31, "city": "New York"}
B{"name": "Alice", "age": 31}
C{"name": "Alice", "age": 30, "city": "New York"}
D{"name": "Alice", "age": 31, "city": null}
Attempts:
2 left
💡 Hint

Remember that PUT replaces the entire resource, not just updates parts.

🧠 Conceptual
intermediate
1:00remaining
Which HTTP method is best for full replacement of a resource?

You want to replace an entire resource on the server with new data. Which HTTP method should you use?

APOST
BGET
CPUT
DPATCH
Attempts:
2 left
💡 Hint

One method is designed to replace the entire resource, while another updates parts.

🔧 Debug
advanced
3:00remaining
Why does this PUT request not update the resource as expected?

A developer sends a PUT request to update a user resource with the following JSON body:

{"name": "Bob", "age": 25}

But after the request, the resource still has the old data including city. The server code handling the PUT is:

def put_user(user_id, data):
    user = get_user(user_id)
    user.update(data)
    save_user(user)

Why does the resource not get fully replaced?

Rest API
def put_user(user_id, data):
    user = get_user(user_id)
    user.update(data)
    save_user(user)
AThe code uses update(), which merges data instead of replacing the resource.
BThe server should use PATCH instead of PUT for full replacement.
CThe save_user function is missing a commit call.
DThe get_user function returns a copy, so changes are lost.
Attempts:
2 left
💡 Hint

Think about what update() does to a dictionary.

📝 Syntax
advanced
1:30remaining
Which JSON body is valid for a PUT request replacing a resource?

You want to send a PUT request to replace a resource. Which JSON body is syntactically valid?

A{"name": "Eve", "age": 29}
B{name: "Eve", age: 29}
C{"name": "Eve" "age": 29}
D{"name": "Eve", "age": 29,}
Attempts:
2 left
💡 Hint

Remember JSON syntax rules for commas and quotes.

🚀 Application
expert
2:30remaining
What happens if a PUT request omits required fields in the resource?

A REST API requires the fields name, age, and email for a user resource.

A client sends a PUT request with the body:

{"name": "Sam", "age": 40}

The email field is missing. What is the expected server behavior according to REST principles?

AThe server ignores the PUT and leaves the resource unchanged.
BThe server replaces the resource without <code>email</code>, possibly causing invalid data.
CThe server merges the data and keeps the old <code>email</code> value.
DThe server rejects the request with a 400 Bad Request error due to missing required fields.
Attempts:
2 left
💡 Hint

Think about data validation and the meaning of PUT replacing the entire resource.

Practice

(1/5)
1. What does the HTTP PUT method do when used on a REST API resource URL?
easy
A. Retrieves the resource data from the URL
B. Partially updates the resource fields at the URL
C. Fully replaces the resource at the URL with the provided data
D. Deletes the resource at the URL

Solution

  1. Step 1: Understand PUT method purpose

    PUT is designed to replace the entire resource at the given URL with the data sent in the request.
  2. Step 2: Compare with other methods

    Unlike PATCH which updates partially, PUT replaces fully. GET retrieves, DELETE removes.
  3. Final Answer:

    Fully replaces the resource at the URL with the provided data -> Option C
  4. Quick Check:

    PUT = full replacement [OK]
Hint: PUT replaces entire resource, not partial update [OK]
Common Mistakes:
  • Confusing PUT with PATCH partial update
  • Thinking PUT deletes resource
  • Assuming PUT only retrieves data
2. Which of the following is the correct HTTP method and usage to fully replace a resource at URL /users/123 with new data in JSON format?
easy
A. POST /users/123 with JSON body
B. PUT /users/123 with JSON body
C. PATCH /users/123 with JSON body
D. GET /users/123 with JSON body

Solution

  1. Step 1: Identify method for full replacement

    PUT is the HTTP method used to fully replace a resource at a specific URL.
  2. Step 2: Match method with URL and body

    PUT /users/123 with JSON body replaces the user data fully. POST is for creation, PATCH partial update, GET retrieves.
  3. Final Answer:

    PUT /users/123 with JSON body -> Option B
  4. Quick Check:

    PUT + URL + JSON = full replace [OK]
Hint: Use PUT with URL and full JSON body to replace resource [OK]
Common Mistakes:
  • Using POST instead of PUT for replacement
  • Using PATCH for full replacement
  • Sending body with GET request
3. Given a REST API with a user resource at /users/42 initially having data {"name": "Alice", "age": 30}, what will be the resource data after this PUT request?
PUT /users/42
{"name": "Bob"}
medium
A. {"name": "Bob"}
B. {"name": "Bob", "age": 30}
C. {"age": 30}
D. Resource deleted

Solution

  1. Step 1: Understand PUT replaces entire resource

    The PUT request replaces the whole resource data with the new JSON body, removing any fields not included.
  2. Step 2: Apply replacement to given data

    Original data had name and age, but PUT body only has name "Bob", so age is removed.
  3. Final Answer:

    {"name": "Bob"} -> Option A
  4. Quick Check:

    PUT replaces all fields, missing fields removed [OK]
Hint: PUT replaces all fields; missing fields are removed [OK]
Common Mistakes:
  • Assuming PUT merges fields like PATCH
  • Expecting old fields to remain if not sent
  • Thinking PUT deletes resource
4. You wrote this PUT request to update a resource:
PUT /items/10
{"price": 100}

But after sending, the resource lost all other fields except price. How can you fix this to keep other fields intact?
medium
A. Use GET method instead
B. Add missing fields to the PUT JSON body
C. Send an empty body with PUT
D. Change PUT to PATCH to update partially

Solution

  1. Step 1: Identify cause of lost fields

    PUT replaces the entire resource, so missing fields in body are removed.
  2. Step 2: Choose method to update partially

    PATCH updates only specified fields, keeping others intact.
  3. Final Answer:

    Change PUT to PATCH to update partially -> Option D
  4. Quick Check:

    PATCH = partial update, keeps other fields [OK]
Hint: Use PATCH for partial update, PUT replaces all [OK]
Common Mistakes:
  • Trying to fix by adding missing fields manually
  • Sending empty body with PUT
  • Using GET to update resource
5. You want to update a user resource at /users/77 with new data {"name": "Eve", "age": 28}. The resource may or may not exist. Which is the best approach using PUT to ensure the resource is created if missing or fully replaced if exists?
hard
A. Send a PUT request with full user data to /users/77
B. Send a POST request to /users with partial data
C. Send a PATCH request to /users/77 with partial data
D. Send a GET request to /users/77 before updating

Solution

  1. Step 1: Understand PUT behavior for create or replace

    PUT can create the resource if it does not exist, or fully replace it if it does.
  2. Step 2: Apply PUT with full data to target URL

    Sending PUT with full user data to /users/77 ensures creation or full replacement.
  3. Final Answer:

    Send a PUT request with full user data to /users/77 -> Option A
  4. Quick Check:

    PUT = create or replace resource fully [OK]
Hint: PUT creates or replaces resource at URL with full data [OK]
Common Mistakes:
  • Using POST which creates new resource with new ID
  • Using PATCH which only updates existing resource partially
  • Using GET before update unnecessarily
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