Courseiva
hardMultiple Select

REST API Design Best Practices: Using Nouns for Resources

Which TWO statements about REST API design best practices are correct?

Quick Answer

The correct answer is that HTTP verbs should describe the action performed on the resource. This is because REST API design best practices dictate that URIs should represent resources as nouns, not verbs—so endpoints like `/users` or `/orders` identify the resource, while the HTTP method (GET, POST, PUT, DELETE) conveys the action. Using verbs in the URI, such as `/getUsers` or `/createOrder`, conflates the resource with the operation and violates the uniform interface constraint, making the API less intuitive and harder to maintain. On the Cisco DevNet Associate 200-901 exam, this concept tests your understanding of RESTful design principles, often appearing in questions that ask you to identify correct URI patterns or distinguish between resource-oriented and action-oriented endpoints. A common trap is confusing the use of HTTP verbs with the URI structure—remember that the verb belongs in the request header, not the path. For a quick memory tip: think of your API as a library—you ask for a book (noun) at the counter, but the action of checking it out (verb) is handled by the librarian, not by renaming the book.

⚠ Common exam trap

Cisco often tests the distinction between PUT (full replacement) and PATCH (partial update), and the trap here is that candidates mistakenly think PUT can be used for partial updates because they overlook the idempotent, full-replacement semantics defined in RFC 7231.

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

✓

Resources should be represented using nouns in the URI

Option C is correct because REST best practice dictates that URIs identify resources, not actions, so they should use nouns (e.g., /users/123) rather than verbs like /getUser. Option E is correct because in REST the HTTP method itself conveys the action on the resource — GET retrieves, POST creates, PUT replaces, PATCH partially updates, and DELETE removes — keeping the URI action-free. Option A is wrong because versioning is commonly done via URI path (e.g., /v1/users), custom media types, or headers, not query parameters only. Option B is wrong because PUT is meant for full resource replacement, while PATCH is the correct method for partial updates. Option D is wrong because REST responses typically include a representation (JSON/XML) in the body along with the status code, not just a bare status code.

Answer analysis

Option-by-option breakdown

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

  • ✗

    API versioning should be implemented using query parameters only

    Why it's wrong here

    Query-parameter versioning pollutes resource identifiers and complicates caching and routing; URI path or media-type versioning is standard. It is tempting because query strings are quick to add, and would suit filtering or pagination parameters rather than API version negotiation.

  • ✗

    HTTP PUT method should be used for partial updates to a resource

    Why it's wrong here

    PUT replaces the entire resource representation, so omitted fields are overwritten; partial updates belong to PATCH. It is tempting because PUT is familiar and idempotent, and would be correct when the client sends a complete replacement representation of the resource.

  • ✓

    Resources should be represented using nouns in the URI

    Why this is correct

    REST treats everything as a resource, so URIs should name those resources with nouns (for example, /orders/42) rather than verbs or actions. The HTTP method then conveys the operation, keeping the interface uniform and predictable.

  • ✗

    Responses should return only HTTP status codes without a body

    Why it's wrong here

    Status codes alone give clients no representation of the created or updated resource, breaking REST's resource-oriented contract. It is tempting because codes are compact and cacheable, and would suit endpoints such as DELETE or 204 No Content responses where no entity is returned.

  • ✓

    HTTP verbs should describe the action performed on the resource

    Why this is correct

    HTTP verbs carry the semantics of the operation: GET retrieves, POST creates, PUT replaces and DELETE removes. Encoding the action in the method rather than the URI keeps resources addressable by noun and preserves uniform, cacheable behaviour.

About these practice questions

This 200-901 question is part of Courseiva's 975-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

1 more way this is tested on 200-901

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. Which TWO statements about REST API design best practices are true? (Choose two.)

medium
  • A.Avoid API versioning to keep the API simple
  • B.Include the HTTP method in the URI path, e.g., /getDevices
  • C.Always use file-based transfer for large payloads
  • ✓ D.Use nouns for resource endpoints, e.g., /devices instead of /getDevices
  • ✓ E.Use HTTP methods appropriately: GET for retrieval, POST for creation, etc.

Why D: Option D is correct because REST best practice is to model endpoints as resources using nouns (e.g., /devices), letting the HTTP method express the action rather than embedding verbs in the URI. Option E is correct because REST relies on standard HTTP methods with their defined semantics: GET for safe retrieval, POST for creating resources, PUT/PATCH for updates, and DELETE for removal, which keeps the interface uniform and predictable. Options A, B, and C are not correct: versioning is generally recommended (e.g., /v1/devices or a version header) to allow evolution without breaking clients, so avoiding it is poor practice; putting the method in the path like /getDevices violates the noun-based resource convention and duplicates HTTP semantics; and file-based transfer is not a REST design rule—large payloads are typically handled with streaming, pagination, or chunked transfer rather than mandating file-based transfer.

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.