{"info":{"_postman_id":"09dfa768-f9cd-4137-9c47-1f4756d7865c","name":"Book API","description":"<html><head></head><body><p>RESTful API for managing a collection of books. Provides endpoints for CRUD operations on books.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"21505573","collectionId":"09dfa768-f9cd-4137-9c47-1f4756d7865c","publishedId":"2sBXcLfcNB","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-03-06T16:36:59.000Z"},"item":[{"name":"Root","item":[{"name":"Get API Info","id":"964509cf-ad0d-4dc2-a70e-66c2e41fad28","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3000/","description":"<h2 id=\"purpose\">Purpose</h2>\n<p>Returns general information about the Book API, including version details and a link to the documentation.</p>\n<h2 id=\"http-method--url\">HTTP Method &amp; URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET http://localhost:3000/\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\n<p>None</p>\n<h2 id=\"request-body\">Request Body</h2>\n<p>Not applicable</p>\n<h2 id=\"response\">Response</h2>\n<p>Returns API metadata with version and documentation information.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Successfully retrieved API information</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>Name of the API</td>\n</tr>\n<tr>\n<td><code>version</code></td>\n<td>string</td>\n<td>Current API version</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>Brief description of the API</td>\n</tr>\n<tr>\n<td><code>documentation</code></td>\n<td>string</td>\n<td>URL to the API documentation</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Book API\",\n  \"version\": \"1.0.0\",\n  \"description\": \"RESTful API for managing a collection of books\",\n  \"documentation\": \"/api/v1/docs\"\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server encountered an unexpected error</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred\"\n}\n</code></pre>\n","urlObject":{"path":[""],"host":["http://localhost:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"964509cf-ad0d-4dc2-a70e-66c2e41fad28"},{"name":"Health Check","id":"6a64590d-bd27-4754-9a0b-b52433d8fca4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3000/health","description":"<h2 id=\"purpose\">Purpose</h2>\n<p>Returns the current health status of the server, useful for monitoring and load balancer health checks.</p>\n<h2 id=\"http-method--url\">HTTP Method &amp; URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET http://localhost:3000/health\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\n<p>None</p>\n<h2 id=\"request-body\">Request Body</h2>\n<p>Not applicable</p>\n<h2 id=\"response\">Response</h2>\n<p>Returns server health status with a timestamp indicating when the check was performed.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Server is healthy and operational</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Health status (e.g., \"healthy\")</td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>string</td>\n<td>ISO 8601 timestamp of the health check</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"healthy\",\n  \"timestamp\": \"2024-01-15T10:30:00.000Z\"\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>503 Service Unavailable</code></td>\n<td>Server is unhealthy or experiencing issues</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"unhealthy\",\n  \"timestamp\": \"2024-01-15T10:30:00.000Z\",\n  \"error\": \"Database connection failed\"\n}\n</code></pre>\n","urlObject":{"path":["health"],"host":["http://localhost:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"6a64590d-bd27-4754-9a0b-b52433d8fca4"}],"id":"fce95dd0-343c-455a-aaba-98a41c5e709a","description":"<p>Root endpoints for API information and health checks</p>\n","_postman_id":"fce95dd0-343c-455a-aaba-98a41c5e709a"},{"name":"Books","item":[{"name":"List All Books","id":"7bfedf52-4299-45a6-9293-ee941aa59d62","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3000/api/v1/books","description":"<h2 id=\"purpose\">Purpose</h2>\n<p>Retrieves a list of all books in the collection. Returns an array of book objects.</p>\n<h2 id=\"http-method--url\">HTTP Method &amp; URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET http://localhost:3000/api/v1/books\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\n<p>None</p>\n<h2 id=\"request-body\">Request Body</h2>\n<p>Not applicable</p>\n<h2 id=\"response\">Response</h2>\n<p>Returns an array of all book objects in the collection.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Successfully retrieved list of books</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-schema\">Response Schema</h3>\n<p>Returns an array of book objects:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the book</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Title of the book</td>\n</tr>\n<tr>\n<td><code>author</code></td>\n<td>string</td>\n<td>Author of the book</td>\n</tr>\n<tr>\n<td><code>year</code></td>\n<td>number</td>\n<td>Publication year (optional, may be absent)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"title\": \"The Great Gatsby\",\n    \"author\": \"F. Scott Fitzgerald\",\n    \"year\": 1925\n  },\n  {\n    \"id\": \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\",\n    \"title\": \"To Kill a Mockingbird\",\n    \"author\": \"Harper Lee\",\n    \"year\": 1960\n  },\n  {\n    \"id\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n    \"title\": \"1984\",\n    \"author\": \"George Orwell\"\n  }\n]\n</code></pre>\n<blockquote>\n<p><strong>Note:</strong> Returns an empty array <code>[]</code> if no books exist in the collection.</p>\n</blockquote>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server encountered an unexpected error</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred\"\n}\n</code></pre>\n","urlObject":{"path":["api","v1","books"],"host":["http://localhost:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"7bfedf52-4299-45a6-9293-ee941aa59d62"},{"name":"Get Book by ID","id":"1291bf35-2c42-435c-842e-a28654c369d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3000:/api/v1/books/:id#","description":"<h2 id=\"purpose\">Purpose</h2>\n<p>Retrieves a single book by its unique identifier. Use this endpoint to fetch detailed information about a specific book.</p>\n<h2 id=\"http-method--url\">HTTP Method &amp; URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET http://localhost:3000/api/v1/books/:id\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the book</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>Not applicable</p>\n<h2 id=\"response\">Response</h2>\n<p>Returns the book object matching the provided ID.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Successfully retrieved the book</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the book</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Title of the book</td>\n</tr>\n<tr>\n<td><code>author</code></td>\n<td>string</td>\n<td>Author of the book</td>\n</tr>\n<tr>\n<td><code>year</code></td>\n<td>number</td>\n<td>Publication year (optional, may be absent)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"title\": \"The Great Gatsby\",\n  \"author\": \"F. Scott Fitzgerald\",\n  \"year\": 1925\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Book with the specified ID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server encountered an unexpected error</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"404-not-found\">404 Not Found</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Not Found\",\n  \"message\": \"Book with id '550e8400-e29b-41d4-a716-446655440000' not found\"\n}\n</code></pre>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred\"\n}\n</code></pre>\n","urlObject":{"port":"","path":["api","v1","books",":id"],"hash":"","host":["http://localhost:3000"],"query":[],"variable":[{"id":"76ffd551-2025-4dc7-8baa-f2e245369159","description":{"content":"<p>The unique identifier (UUID) of the book to retrieve</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"1291bf35-2c42-435c-842e-a28654c369d4"},{"name":"Create Book","id":"18863df5-51b4-468c-aab0-6b72b65d285d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/v1/books","description":"<h2 id=\"purpose\">Purpose</h2>\n<p>Creates a new book in the collection. The server automatically generates a unique ID for the new book.</p>\n<h2 id=\"http-method--url\">HTTP Method &amp; URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST http://localhost:3000/api/v1/books\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\n<p>None</p>\n<h2 id=\"request-body\">Request Body</h2>\n<p>Send a JSON object with the book details.</p>\n<h3 id=\"request-schema\">Request Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>Title of the book (non-empty string)</td>\n</tr>\n<tr>\n<td><code>author</code></td>\n<td>string</td>\n<td><strong>Yes</strong></td>\n<td>Author of the book (non-empty string)</td>\n</tr>\n<tr>\n<td><code>year</code></td>\n<td>number</td>\n<td>No</td>\n<td>Publication year (non-negative integer)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"The Great Gatsby\",\n  \"author\": \"F. Scott Fitzgerald\",\n  \"year\": 1925\n}\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<p>Returns the newly created book object with its generated ID.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>201 Created</code></td>\n<td>Book successfully created</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Auto-generated unique identifier (UUID)</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Title of the book</td>\n</tr>\n<tr>\n<td><code>author</code></td>\n<td>string</td>\n<td>Author of the book</td>\n</tr>\n<tr>\n<td><code>year</code></td>\n<td>number</td>\n<td>Publication year (if provided)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"title\": \"The Great Gatsby\",\n  \"author\": \"F. Scott Fitzgerald\",\n  \"year\": 1925\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Validation error - missing or invalid fields</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server encountered an unexpected error</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"400-bad-request---missing-required-field\">400 Bad Request - Missing Required Field</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Bad Request\",\n  \"message\": \"Validation failed\",\n  \"details\": [\n    { \"field\": \"title\", \"message\": \"Title is required\" }\n  ]\n}\n</code></pre>\n<h3 id=\"400-bad-request---invalid-year\">400 Bad Request - Invalid Year</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Bad Request\",\n  \"message\": \"Validation failed\",\n  \"details\": [\n    { \"field\": \"year\", \"message\": \"Year must be a non-negative integer\" }\n  ]\n}\n</code></pre>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred\"\n}\n</code></pre>\n","urlObject":{"path":["api","v1","books"],"host":["http://localhost:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"18863df5-51b4-468c-aab0-6b72b65d285d"},{"name":"Update Book","id":"83c1a8bf-b61a-409b-bc86-34b10e2c7554","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000:/api/v1/books/:id#","description":"<h2 id=\"purpose\">Purpose</h2>\n<p>Updates an existing book in the collection. Only the fields provided in the request body will be updated; omitted fields remain unchanged.</p>\n<h2 id=\"http-method--url\">HTTP Method &amp; URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT http://localhost:3000/api/v1/books/:id\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the book to update</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>Send a JSON object with the fields to update. All fields are optional, but at least one field should be provided.</p>\n<h3 id=\"request-schema\">Request Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>No</td>\n<td>New title for the book (non-empty string)</td>\n</tr>\n<tr>\n<td><code>author</code></td>\n<td>string</td>\n<td>No</td>\n<td>New author for the book (non-empty string)</td>\n</tr>\n<tr>\n<td><code>year</code></td>\n<td>number</td>\n<td>No</td>\n<td>New publication year (non-negative integer)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"The Great Gatsby (Revised Edition)\",\n  \"year\": 1926\n}\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<p>Returns the updated book object with all its fields.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Book successfully updated</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Unique identifier (UUID) for the book</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>Updated title of the book</td>\n</tr>\n<tr>\n<td><code>author</code></td>\n<td>string</td>\n<td>Updated author of the book</td>\n</tr>\n<tr>\n<td><code>year</code></td>\n<td>number</td>\n<td>Updated publication year (if set)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"title\": \"The Great Gatsby (Revised Edition)\",\n  \"author\": \"F. Scott Fitzgerald\",\n  \"year\": 1926\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Validation error - invalid field values</td>\n</tr>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Book with the specified ID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server encountered an unexpected error</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"400-bad-request---invalid-field-value\">400 Bad Request - Invalid Field Value</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Bad Request\",\n  \"message\": \"Validation failed\",\n  \"details\": [\n    { \"field\": \"year\", \"message\": \"Year must be a non-negative integer\" }\n  ]\n}\n</code></pre>\n<h3 id=\"404-not-found\">404 Not Found</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Not Found\",\n  \"message\": \"Book with id '550e8400-e29b-41d4-a716-446655440000' not found\"\n}\n</code></pre>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred\"\n}\n</code></pre>\n","urlObject":{"port":"","path":["api","v1","books",":id"],"hash":"","host":["http://localhost:3000"],"query":[],"variable":[{"id":"25d05988-d7bb-4c15-a489-b125b425602e","description":{"content":"<p>The unique identifier (UUID) of the book to update</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"83c1a8bf-b61a-409b-bc86-34b10e2c7554"},{"name":"Delete Book","id":"587914ee-e9aa-411f-ae80-b65dda75044c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:3000:/api/v1/books/:id#","description":"<h2 id=\"purpose\">Purpose</h2>\n<p>Permanently deletes a book from the collection. This action cannot be undone.</p>\n<h2 id=\"http-method--url\">HTTP Method &amp; URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE http://localhost:3000/api/v1/books/:id\n</code></pre><h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier (UUID) of the book to delete</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body\">Request Body</h2>\n<p>Not applicable</p>\n<h2 id=\"response\">Response</h2>\n<p>Returns a confirmation message upon successful deletion.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>200 OK</code></td>\n<td>Book successfully deleted</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-schema\">Response Schema</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Confirmation message</td>\n</tr>\n<tr>\n<td><code>deleted</code></td>\n<td>object</td>\n<td>The deleted book object</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Book successfully deleted\",\n  \"deleted\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"title\": \"The Great Gatsby\",\n    \"author\": \"F. Scott Fitzgerald\",\n    \"year\": 1925\n  }\n}\n</code></pre>\n<h2 id=\"error-responses\">Error Responses</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>404 Not Found</code></td>\n<td>Book with the specified ID does not exist</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server encountered an unexpected error</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"404-not-found\">404 Not Found</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Not Found\",\n  \"message\": \"Book with id '550e8400-e29b-41d4-a716-446655440000' not found\"\n}\n</code></pre>\n<h3 id=\"500-internal-server-error\">500 Internal Server Error</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"Internal Server Error\",\n  \"message\": \"An unexpected error occurred\"\n}\n</code></pre>\n","urlObject":{"port":"","path":["api","v1","books",":id"],"hash":"","host":["http://localhost:3000"],"query":[],"variable":[{"id":"14de6334-e5b4-4852-81ae-100b2a2c774f","description":{"content":"<p>The unique identifier (UUID) of the book to delete</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"587914ee-e9aa-411f-ae80-b65dda75044c"}],"id":"e91292b3-3491-466d-b74d-9cf194dcb8d1","description":"<p>Endpoints for managing books - create, read, update, and delete operations</p>\n","_postman_id":"e91292b3-3491-466d-b74d-9cf194dcb8d1"}],"variable":[{"id":"9c05796d-0e23-4062-be2b-ac702168ae18","key":"baseUrl","value":"http://localhost:3000","type":"string"}]}