Courseiva
mediumMultiple Select

200-901 Practice Question: A developer is designing a REST API for managing…

A developer is designing a REST API for managing network devices. Which three best practices should be followed for the API design? (Choose three.)

⚠ Common exam trap

Cisco often tests the misconception that POST should be used for all state-changing operations because it is simple, but the trap is that POST is not idempotent, and idempotency is a key REST constraint that must be satisfied by using PUT or DELETE for appropriate operations.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

Use nouns for resource names (e.g., /devices) rather than verbs.

Option B is correct because REST resource URIs should be noun-based (e.g., /devices) so that HTTP methods express the action, keeping the interface uniform and predictable. Option C is correct because embedding the version in the URL path (e.g., /v1/devices) provides explicit, easily routable versioning that lets clients pin to a stable contract while new versions are introduced. Option E is correct because returning semantically accurate HTTP status codes (e.g., 200 OK, 201 Created, 204 No Content, 400 Bad Request, 404 Not Found, 409 Conflict) lets clients interpret outcomes without parsing custom payloads. Option A is wrong because POST is neither idempotent nor the right verb for all state changes; PUT and DELETE are idempotent and should be used for updates and deletions. Option D is wrong because always returning the full representation wastes bandwidth and ignores partial responses, field selection, and caching semantics.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Use POST for all state-changing operations to ensure idempotency.

    Why it's wrong here

    POST is neither idempotent nor safe, so using it for every state change breaks retry semantics. PUT and DELETE are idempotent for updates and removals, while POST suits creation; REST design should map methods to their defined semantics.

  • ✓

    Use nouns for resource names (e.g., /devices) rather than verbs.

    Why this is correct

    REST treats resources as entities, so the URI should identify the device collection itself. Using nouns like /devices lets HTTP methods (GET, POST, PUT, DELETE) supply the action, satisfying the design constraint that operations map to verbs rather than being embedded in the path.

  • ✓

    Include versioning in the URL path (e.g., /v1/devices).

    Why this is correct

    Embedding the version in the path, as in /v1/devices, lets the API evolve without breaking existing clients. This satisfies the design constraint that consumers pinned to an older contract continue working while newer behaviour ships under a distinct URI.

  • ✗

    Always send the entire resource representation in all responses to reduce client requests.

    Why it's wrong here

    Returning the full resource on every response wastes bandwidth and breaks caching, contradicting REST's stateless, cacheable design; responses should carry only what the client needs. Full representations suit small resources or PUT requests where the client replaces the whole entity.

  • ✓

    Use proper HTTP status codes to describe results.

    Why this is correct

    HTTP status codes let the API signal outcomes uniformly: 200 for success, 201 for creation, 404 for a missing device, 500 for server faults. This satisfies the constraint that clients interpret results programmatically without parsing custom response bodies.

About these practice questions

One of 975 original 200-901 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This 200-901 practice question is part of Courseiva's free Cisco certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the 200-901 exam.