Skip to main content

Module Quiz

Complete this quiz after finishing all concept and practice pages. Save your answers before opening separate quiz calibration.

Current Module Questions​

Question 1: Contract vs Implementation​

In one paragraph, distinguish the API contract from the implementation. Give one concrete thing that belongs in each, and one thing that is easy to get wrong.

Question 2: Design This Endpoint and Defend - Cancel an Order​

Design the endpoint used by a client to cancel an order. Give URL, verb, request body, success response, one conflict response. Defend the URL choice against DELETE /orders/{id} and against PATCH /orders/{id}.

Question 3: HTTP Verbs and Idempotency​

Rank GET, POST, PUT, PATCH, DELETE by idempotency as defined in the HTTP spec, and explain one technique to make a non-idempotent operation retryable.

Question 4: Design This Endpoint and Defend - Paginated List With Filter​

Design GET /tickets supporting pagination, filtering on status and priority, sorting by created_at, and sparse fieldsets. Write one example request and the response envelope. Defend your pagination choice.

Question 5: Breaking vs Non-Breaking​

A response currently returns { "total": 4599 } (integer minor units). Your PM wants to add currency info. Propose a non-breaking change. Then propose a breaking alternative and explain why it is breaking.

Question 6: REST vs gRPC Decision​

A new internal service with 6 methods will be called by 3 other internal teams, all using Go. Pick REST or gRPC and defend.

Question 7: GraphQL N+1​

Sketch a GraphQL query whose naive execution triggers N+1, then explain the mitigation.

Question 8: Webhook Delivery Guarantees​

A webhook consumer receives payment.succeeded events. List the three guarantees they must design around and the client-side mechanism for each.

Question 9: AsyncAPI and Event Compatibility​

A team wants to rename customer_id to customerId in their orders.paid.v1 event payload. Safe or breaking? What do you do?

Question 10: Deprecation Plan​

Write a mini deprecation plan for removing GET /v1/orders/{id}/legacy_status. Include headers, runway, and the removal response.

Question 11: Design This Endpoint and Defend - Bulk Import​

Design the endpoint a consumer calls to import 2 million orders from a CSV file. Defend every design decision.

Question 12: Versioning Strategy Defense​

Your API supports /v1/ URL versioning. A colleague proposes switching to header-based date versioning "because Stripe does it." Should you?

Question 13: Status Code Discipline​

A validation fails on POST /orders because items is empty. The team proposes 200 OK { "success": false, "error": "items required" }. Argue against.

Question 14: Governance Tradeoff​

Your org has 8 teams shipping APIs independently. What is the single cheapest governance step that materially improves consumer experience?

A client needs to run complex order queries with up to 20 filter predicates, free-text search, and custom facets. Design the endpoint. Defend against GET /orders?filter=....

Interleaved Review Questions​

Prior Module Question 1 (S7M1: Architecture quality attributes)​

Name four architecture quality attributes and relate each to one API design decision in this module.

Prior Module Question 2 (S7M3: Bounded contexts)​

How does a bounded context inform where API boundaries go?

Prior Module Question 3 (S6M3: Consistency)​

How does CAP theorem affect the ordering guarantees you can offer in a webhook feed?

Prior Module Question 4 (S6M4: Transactions)​

A consumer calls POST /orders, the request succeeds, and the client's connection drops before the 201 arrives. What should the client do and what should the contract promise?

Prior Module Question 5 (S7M2: Modular monolith vs microservices)​

You are splitting a modular monolith into two services. What does API design owe the split?

Self-Assessment and Remediation​

Mastery Level (90-100% correct): Retrieval is strong. Advancement still requires every module and semester evidence gate; this score alone is insufficient.

Proficient Level (75-89% correct): Review the missed concept pages and redo Practice 1 (REST workshop) or Practice 3 (evolution lab), whichever matches the weakness.

Developing Level (60-74% correct): Rework Clusters 2 and 5 from the concept pages; redo Katas 1 and 4. Expect the weakness to be in verb/status discipline or compatibility classification.

Insufficient Level (<60% correct): Restart from Cluster 1 Concept 1. The most likely issue is treating the API as "the code" rather than "the contract." Until "what is the contract here?" is a reflex question, the rest of the module does not stick.

Progression boundary​

Quiz performance calibrates retrieval and reasoning. It does not replace runnable work, changed-case transfer, the module assessment or required semester evidence. Consult practice calibration for the additional independent cases.