Bird
Raised Fist0
IOT Protocolsdevops~20 mins

RESTful API design for devices in IOT Protocols - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
RESTful API Device Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding RESTful API resource naming for devices

Which of the following URL paths best follows RESTful API design principles for accessing a list of all devices?

A/devices
B/getDevices
C/deviceList
D/listDevices
Attempts:
2 left
💡 Hint

Think about using nouns and plural forms for resource collections.

💻 Command Output
intermediate
2:00remaining
HTTP method for updating device configuration

What is the expected HTTP status code when successfully updating a device configuration using a PUT request?

IOT Protocols
PUT /devices/123/config HTTP/1.1
Host: api.example.com
Content-Type: application/json

{"mode": "active", "threshold": 75}
A201 Created
B200 OK
C204 No Content
D404 Not Found
Attempts:
2 left
💡 Hint

Consider what status code means successful update with response body.

🔀 Workflow
advanced
3:00remaining
Correct sequence of RESTful API calls to register and activate a device

Arrange the following API calls in the correct order to register a new device and then activate it.

A1,2,4,3
B2,1,3,4
C1,3,2,4
D1,2,3,4
Attempts:
2 left
💡 Hint

Think about creating first, then checking, then updating status.

❓ Troubleshoot
advanced
2:00remaining
Diagnosing a 405 Method Not Allowed error on device endpoint

A client sends a DELETE request to /devices/456 but receives a 405 Method Not Allowed error. What is the most likely cause?

AThe client sent an invalid JSON payload
BThe server is down
CThe API does not support DELETE method on /devices/{id}
DThe device ID 456 does not exist
Attempts:
2 left
💡 Hint

405 means the method is not allowed on the resource.

✅ Best Practice
expert
3:00remaining
Choosing the best approach for device API versioning

Which of the following is the best RESTful API versioning strategy for devices to ensure backward compatibility?

AInclude version number in the URL path, e.g., /v1/devices
BAdd version as a query parameter, e.g., /devices?version=1
CUse a custom HTTP header for version, e.g., X-API-Version: 1
DChange the resource names for each version, e.g., /devicesV1
Attempts:
2 left
💡 Hint

Consider clarity and cacheability in URLs.

Practice

(1/5)
1. Which HTTP method is typically used to retrieve data from a device in a RESTful API?
easy
A. DELETE
B. GET
C. PUT
D. POST

Solution

  1. Step 1: Understand HTTP methods in REST

    GET is used to request data without changing it, ideal for reading device info.
  2. Step 2: Match method to action

    Since retrieving data means reading, GET fits best over POST, PUT, or DELETE.
  3. Final Answer:

    GET -> Option B
  4. Quick Check:

    Retrieve data = GET [OK]
Hint: GET always fetches data without changing it [OK]
Common Mistakes:
  • Confusing POST with GET for data retrieval
  • Using DELETE to get data
  • Thinking PUT retrieves data
2. Which of the following is the correct RESTful URL to update the settings of a device with ID 123?
easy
A. /update/device/123
B. /device/123/update
C. /devices/settings/123
D. /devices/123/settings

Solution

  1. Step 1: Identify RESTful URL structure

    RESTful URLs use nouns and hierarchy: resource then ID then sub-resource.
  2. Step 2: Check options for correct pattern

    /devices/123/settings correctly shows device resource, ID, then settings sub-resource.
  3. Final Answer:

    /devices/123/settings -> Option D
  4. Quick Check:

    Resource/ID/sub-resource = /devices/123/settings [OK]
Hint: Use resource/ID/sub-resource format for REST URLs [OK]
Common Mistakes:
  • Placing ID after sub-resource
  • Using verbs like 'update' in URL
  • Mixing singular and plural resource names
3. Given this RESTful API call: DELETE /devices/456, what is the expected result?
medium
A. Remove device 456 from the system
B. Update device 456 information
C. Retrieve device 456 details
D. Create a new device with ID 456

Solution

  1. Step 1: Understand DELETE method purpose

    DELETE removes the specified resource from the server.
  2. Step 2: Apply to device 456

    DELETE /devices/456 means remove device with ID 456 from the system.
  3. Final Answer:

    Remove device 456 from the system -> Option A
  4. Quick Check:

    DELETE method = remove resource [OK]
Hint: DELETE removes resources, not fetch or update [OK]
Common Mistakes:
  • Thinking DELETE retrieves data
  • Confusing DELETE with POST or PUT
  • Assuming DELETE creates resources
4. You wrote this API call to update a device: POST /devices/789 but it creates a new device instead. What is the likely mistake?
medium
A. Using POST instead of PUT for update
B. Missing device ID in URL
C. Using GET method instead of POST
D. Incorrect device ID format

Solution

  1. Step 1: Understand POST vs PUT

    POST usually creates new resources; PUT updates existing ones.
  2. Step 2: Analyze the API call

    POST /devices/789 creates new device; to update, use PUT /devices/789.
  3. Final Answer:

    Using POST instead of PUT for update -> Option A
  4. Quick Check:

    Update needs PUT, not POST [OK]
Hint: Use PUT to update, POST to create [OK]
Common Mistakes:
  • Using POST for updates
  • Confusing GET with POST
  • Ignoring HTTP method meaning
5. You want to design a RESTful API to control multiple devices' power state at once. Which design is best?
hard
A. PUT /device/{id}/power for each device separately
B. GET /devices/power to fetch all power states
C. POST /devices/power with JSON list of device IDs and states
D. DELETE /devices/power to reset all devices

Solution

  1. Step 1: Identify batch update needs

    To control many devices at once, send a batch request with data.
  2. Step 2: Match HTTP method and URL

    POST /devices/power with JSON list allows updating multiple devices in one call.
  3. Step 3: Evaluate other options

    GET fetches data, PUT is per device, DELETE resets devices--none fit batch control well.
  4. Final Answer:

    POST /devices/power with JSON list of device IDs and states -> Option C
  5. Quick Check:

    Batch update = POST with data list [OK]
Hint: Use POST with data list for batch device updates [OK]
Common Mistakes:
  • Using GET to change device states
  • Trying PUT for batch updates
  • Using DELETE to control power
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