Skip to content

Latest commit

 

History

History
52 lines (38 loc) · 1.31 KB

File metadata and controls

52 lines (38 loc) · 1.31 KB

Validation and error models

This file supports the Week 2 segment on error model and validation design.

Goals for this segment

  • Design a consistent error format for the Snippets API.
  • Decide which validations to enforce and where (middleware vs per-endpoint).
  • Make sure the design is reflected in both:
    • Your Express implementation.
    • Your OpenAPI specification.

Error format

Recommend something simple such as:

{ "error": "Human-readable message" }

or

{
  "error": {
    "code": "SNIPPET_NOT_FOUND",
    "message": "Snippet with id 42 was not found"
  }
}

The exact format is less important than being consistent across endpoints.

Validation examples

For the Snippets API, talk through validations like:

  • POST /api/snippets
    • title is required and non-empty.
    • contents is required and non-empty.
    • Optional fields like is_private have sensible defaults.
  • PUT /api/snippets/:id
    • Reject updates with empty title or contents.
    • Return 404 when id does not exist.
  • Any /:id route
    • Validate that id is a number before hitting the database.

Connect these decisions back to status codes from Week 1:

  • 400 Bad Request for invalid inputs.
  • 404 Not Found when a resource is missing.
  • 500 Internal Server Error for unexpected issues.