{"info":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","description":"<html><head></head><body><p>This is a microservice-based system for managing books and their reviews and orders, built using Spring Boot. It demonstrates robust inter-service communication using both&nbsp;<strong>Feign Clients</strong>&nbsp;(REST) and&nbsp;<strong>gRPC.</strong></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"28117952","collectionId":"63c895fc-37e7-4575-b13e-05a9743885f1","publishedId":"2sB3BALCFz","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-08-01T09:04:39.000Z"},"item":[{"name":"Book","item":[{"name":"Login","id":"fa67df89-b1b4-4bf4-a85a-daa5176f07bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"admin\",\r\n  \"password\": \"admin\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/api/authenticate","description":"<p>Login in to the bookstore</p>\n","urlObject":{"path":["api","authenticate"],"host":["http://localhost:8765"],"query":[],"variable":[]}},"response":[{"id":"fc4adbc7-cec3-4764-b1ff-ca0c5aa08ebc","name":"Login","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"admin\",\r\n  \"password\": \"admin\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/api/authenticate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc1MzM1OTQ0OCwiYXV0aCI6IlJPTEVfQURNSU4gUk9MRV9VU0VSIiwiaWF0IjoxNzUzMjczMDQ4fQ.kMtz_OQ6kPOG_BTW7lummSjuukjOMu4NIlDX777-Ob19kJI0yWi7azU2YiZKo1d1pA0hStjc_cUtLT9p8ODErA"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"237"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-XSS-Protection","value":"0"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_token\": \"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc1MzM1OTQ0OCwiYXV0aCI6IlJPTEVfQURNSU4gUk9MRV9VU0VSIiwiaWF0IjoxNzUzMjczMDQ4fQ.kMtz_OQ6kPOG_BTW7lummSjuukjOMu4NIlDX777-Ob19kJI0yWi7azU2YiZKo1d1pA0hStjc_cUtLT9p8ODErA\"\n}"}],"_postman_id":"fa67df89-b1b4-4bf4-a85a-daa5176f07bf"},{"name":"Add Book","id":"9cbde02c-f756-4614-b52b-453313ed4b0f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":" {\r\n    \"title\": \"Jhipster tutorial Vol 2\",\r\n    \"author\": \"Odiase-Omoighe Samuel\",\r\n    \"isbn\": \"1234567857\",\r\n    \"price\": 20767.94,\r\n    \"publishedDate\": \"2025-07-23T03:23:26Z\",\r\n    \"availableCopies\": 300\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/bookservice/api/books","description":"<p>Add Books to the store</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","bookservice","api","books"],"host":["http://localhost:8765"],"query":[],"variable":[]}},"response":[{"id":"3e10de14-194f-4b2b-bd8d-933d5d1bc6bc","name":"Add Book","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":" {\r\n    \"title\": \"Jhipster tutorial\",\r\n    \"author\": \"Odiase samuel\",\r\n    \"isbn\": \"1234567898\",\r\n    \"price\": 20767.94,\r\n    \"publishedDate\": \"2025-07-23T03:23:26Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/bookservice/api/books"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-bookServiceApp-params","value":"1001"},{"key":"X-bookServiceApp-alert","value":"A new bookServiceBook is created with identifier 1001"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"Location","value":"/api/books/1001"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Wed, 23 Jul 2025 14:27:51 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1001,\n    \"title\": \"Jhipster tutorial\",\n    \"author\": \"Odiase samuel\",\n    \"isbn\": \"1234567898\",\n    \"price\": 20767.94,\n    \"publishedDate\": \"2025-07-23T03:23:26Z\"\n}"}],"_postman_id":"9cbde02c-f756-4614-b52b-453313ed4b0f"},{"name":"Get All Books","id":"71f56bd3-27eb-49bf-bc03-728ca776dba4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8765/services/bookservice/api/books","description":"<p>Retrieve all books from the store</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","bookservice","api","books"],"host":["http://localhost:8765"],"query":[],"variable":[]}},"response":[{"id":"6c567697-1445-47b6-a43a-b31c91e42520","name":"Get All Books","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8765/services/bookservice/api/books"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Wed, 23 Jul 2025 14:29:46 GMT"},{"key":"X-Total-Count","value":"11"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Link","value":"<http://localhost:8765/api/books?page=0&size=20>; rel=\"last\",<http://localhost:8765/api/books?page=0&size=20>; rel=\"first\""},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"title\": \"yippee wherever warm\",\n        \"author\": \"impure\",\n        \"isbn\": \"steeple next \",\n        \"price\": 17465.14,\n        \"publishedDate\": \"2025-07-23T04:55:05Z\"\n    },\n    {\n        \"id\": 2,\n        \"title\": \"damaged\",\n        \"author\": \"fibre\",\n        \"isbn\": \"plugin brr ca\",\n        \"price\": 11949.66,\n        \"publishedDate\": \"2025-07-22T19:18:32Z\"\n    },\n    {\n        \"id\": 3,\n        \"title\": \"swelter\",\n        \"author\": \"after quick\",\n        \"isbn\": \"into signatur\",\n        \"price\": 19633.16,\n        \"publishedDate\": \"2025-07-23T05:21:14Z\"\n    },\n    {\n        \"id\": 4,\n        \"title\": \"midst sans but\",\n        \"author\": \"quaver wide-eyed\",\n        \"isbn\": \"rightfully\",\n        \"price\": 20767.94,\n        \"publishedDate\": \"2025-07-23T03:23:26Z\"\n    },\n    {\n        \"id\": 5,\n        \"title\": \"coaxingly what\",\n        \"author\": \"fax feather\",\n        \"isbn\": \"covenantXX\",\n        \"price\": 24155.16,\n        \"publishedDate\": \"2025-07-23T01:50:39Z\"\n    },\n    {\n        \"id\": 6,\n        \"title\": \"perky marksman unused\",\n        \"author\": \"frail modulo till\",\n        \"isbn\": \"beard kinase \",\n        \"price\": 2390.4,\n        \"publishedDate\": \"2025-07-23T08:48:33Z\"\n    },\n    {\n        \"id\": 7,\n        \"title\": \"because forsaken\",\n        \"author\": \"culture\",\n        \"isbn\": \"whose access\",\n        \"price\": 5434.1,\n        \"publishedDate\": \"2025-07-23T10:49:55Z\"\n    },\n    {\n        \"id\": 8,\n        \"title\": \"showboat huzzah\",\n        \"author\": \"circumference language as\",\n        \"isbn\": \"as rivalXX\",\n        \"price\": 9431.73,\n        \"publishedDate\": \"2025-07-23T00:42:55Z\"\n    },\n    {\n        \"id\": 9,\n        \"title\": \"all ah yowza\",\n        \"author\": \"cinder instead after\",\n        \"isbn\": \"under yippee\",\n        \"price\": 26434.85,\n        \"publishedDate\": \"2025-07-23T06:18:19Z\"\n    },\n    {\n        \"id\": 10,\n        \"title\": \"headline how\",\n        \"author\": \"psst weight poetry\",\n        \"isbn\": \"negative gadz\",\n        \"price\": 25921.15,\n        \"publishedDate\": \"2025-07-22T23:14:46Z\"\n    },\n    {\n        \"id\": 1001,\n        \"title\": \"Jhipster tutorial\",\n        \"author\": \"Odiase samuel\",\n        \"isbn\": \"1234567898\",\n        \"price\": 20767.94,\n        \"publishedDate\": \"2025-07-23T03:23:26Z\"\n    }\n]"}],"_postman_id":"71f56bd3-27eb-49bf-bc03-728ca776dba4"},{"name":"Get Book by Id","id":"742586b5-b29f-4529-8e3b-dfdcd013a9c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8765/services/bookservice/api/books/:id","description":"<p>Retreive a specifc book</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","bookservice","api","books",":id"],"host":["http://localhost:8765"],"query":[],"variable":[{"type":"any","value":"1102","key":"id"}]}},"response":[{"id":"12c48bba-cc39-4b30-b7a8-486939bae540","name":"Get Book by Id","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8765/services/bookservice/api/books/:id","host":["http://localhost:8765"],"path":["services","bookservice","api","books",":id"],"variable":[{"key":"id","value":"1102"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 08:44:06 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1102,\n    \"title\": \"Jhipster tutorial\",\n    \"author\": \"Odiase samuel\",\n    \"isbn\": \"1234567898\",\n    \"price\": 20767.94,\n    \"publishedDate\": \"2025-07-23T03:23:26Z\",\n    \"availableCopies\": 4\n}"}],"_postman_id":"742586b5-b29f-4529-8e3b-dfdcd013a9c0"},{"name":"Get Book by Isbn","id":"12e77479-aa19-4ee9-8cdc-8603f7b655cc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8765/services/bookservice/api/books/isbn/:isbn","description":"<p>Retreive a specifc book</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","bookservice","api","books","isbn",":isbn"],"host":["http://localhost:8765"],"query":[],"variable":[{"type":"any","value":"1234567898","key":"isbn"}]}},"response":[{"id":"19e24ba4-7520-4fa4-bb2e-d7ca42b777fe","name":"Get Book by Isbn","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8765/services/bookservice/api/books/isbn/:isbn","host":["http://localhost:8765"],"path":["services","bookservice","api","books","isbn",":isbn"],"variable":[{"key":"isbn","value":"1234567898"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 08:44:18 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1102,\n    \"title\": \"Jhipster tutorial\",\n    \"author\": \"Odiase samuel\",\n    \"isbn\": \"1234567898\",\n    \"price\": 20767.94,\n    \"publishedDate\": \"2025-07-23T03:23:26Z\",\n    \"availableCopies\": 4\n}"}],"_postman_id":"12e77479-aa19-4ee9-8cdc-8603f7b655cc"},{"name":"Partially Update Book","id":"7014f8e8-1564-49c1-b3a8-1b29ca234ebf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":" {\r\n    \"id\": 1051,\r\n    \"title\": \"Jhipster tutorial Vol 40\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/bookservice/api/books/:id","description":"<p>Partially update a specific book in the store</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","bookservice","api","books",":id"],"host":["http://localhost:8765"],"query":[],"variable":[{"id":"c02130c4-1a66-4425-98df-dc4538830f5e","type":"any","value":"1051","key":"id"}]}},"response":[{"id":"0222ebe0-86cc-448e-be49-60cf2f0a5146","name":"Partially Update Book","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":" {\r\n    \"id\": 1001,\r\n    \"title\": \"Jhipster tutorial Vol 1\"\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://localhost:8765/services/bookservice/api/books/:id","host":["http://localhost:8765"],"path":["services","bookservice","api","books",":id"],"variable":[{"key":"id","value":"1001"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-bookServiceApp-params","value":"1001"},{"key":"X-bookServiceApp-alert","value":"A bookServiceBook is updated with identifier 1001"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Wed, 23 Jul 2025 14:46:03 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1001,\n    \"title\": \"Jhipster tutorial Vol 1\",\n    \"author\": \"Odiase Peter\",\n    \"isbn\": \"1234567898\",\n    \"price\": 20767.94,\n    \"publishedDate\": \"2025-07-23T03:23:26Z\",\n    \"availableCopies\": 4\n}"}],"_postman_id":"7014f8e8-1564-49c1-b3a8-1b29ca234ebf"},{"name":"Update Book","id":"93297975-c6b1-4d5e-bf8c-861ddd0d93c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":" {\r\n    \"id\": 1102,\r\n    \"title\": \"Jhipster tutorial Vol 20\",\r\n    \"author\": \"Odiase Peter\",\r\n    \"isbn\": \"1234567898\",\r\n    \"price\": 20767.94,\r\n    \"publishedDate\": \"2025-07-23T03:23:26Z\",\r\n    \"availableCopies\": 20\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/bookservice/api/books/:id","description":"<p>Update an existing book in the store</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","bookservice","api","books",":id"],"host":["http://localhost:8765"],"query":[],"variable":[{"type":"any","value":"1102","key":"id"}]}},"response":[{"id":"91bf903a-6010-4fdc-b2d5-c6dcc5f48e5d","name":"Update Book","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":" {\r\n    \"id\": 1102,\r\n    \"title\": \"Jhipster tutorial Vol 20\",\r\n    \"author\": \"Odiase Peter\",\r\n    \"isbn\": \"1234567898\",\r\n    \"price\": 20767.94,\r\n    \"publishedDate\": \"2025-07-23T03:23:26Z\",\r\n    \"availableCopies\": 20\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://localhost:8765/services/bookservice/api/books/:id","host":["http://localhost:8765"],"path":["services","bookservice","api","books",":id"],"variable":[{"key":"id","value":"1102"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-bookServiceApp-params","value":"1102"},{"key":"X-bookServiceApp-alert","value":"A bookServiceBook is updated with identifier 1102"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 08:48:52 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1102,\n    \"title\": \"Jhipster tutorial Vol 20\",\n    \"author\": \"Odiase Peter\",\n    \"isbn\": \"1234567898\",\n    \"price\": 20767.94,\n    \"publishedDate\": \"2025-07-23T03:23:26Z\",\n    \"availableCopies\": 20\n}"}],"_postman_id":"93297975-c6b1-4d5e-bf8c-861ddd0d93c1"},{"name":"Delete Book","id":"7bdb6eb7-a054-41cf-8370-786b10fbe349","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8765/services/bookservice/api/books/:id","description":"<p>Delete a specific book in the store</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","bookservice","api","books",":id"],"host":["http://localhost:8765"],"query":[],"variable":[{"id":"88e9d0dc-c1a3-4662-90af-afaa276c3fbe","type":"any","value":"1051","key":"id"}]}},"response":[{"id":"0246e385-783d-4120-9983-2e412abe7c9a","name":"Delete Book","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"http://localhost:8765/services/bookservice/api/books/:id","host":["http://localhost:8765"],"path":["services","bookservice","api","books",":id"],"variable":[{"key":"id","value":"1001"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-bookServiceApp-params","value":"1001"},{"key":"X-bookServiceApp-alert","value":"A bookServiceBook is deleted with identifier 1001"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Wed, 23 Jul 2025 14:47:12 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"7bdb6eb7-a054-41cf-8370-786b10fbe349"}],"id":"ccd04a5f-73e2-4e7c-8033-f7d88645e399","_postman_id":"ccd04a5f-73e2-4e7c-8033-f7d88645e399","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}}},{"name":"Review","item":[{"name":"Get All Reviews","id":"f14c8450-2e90-4087-a030-e74c1291d34d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8765/services/reviewservice/api/reviews","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","reviewservice","api","reviews"],"host":["http://localhost:8765"],"query":[],"variable":[]}},"response":[{"id":"0e410288-8e14-46d4-bcd4-ea5845f77174","name":"Get All Reviews","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8765/services/reviewservice/api/reviews"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 09:02:36 GMT"},{"key":"X-Total-Count","value":"9"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Link","value":"<http://localhost:8765/api/reviews?page=0&size=20>; rel=\"last\",<http://localhost:8765/api/reviews?page=0&size=20>; rel=\"first\""},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"bookIsbn\": \"1234567890A1\",\n        \"rating\": 5,\n        \"comment\": \"Excellent read!\",\n        \"reviewDate\": \"2024-11-01T10:00:00Z\"\n    },\n    {\n        \"id\": 2,\n        \"bookIsbn\": \"9876543210B2\",\n        \"rating\": 4,\n        \"comment\": \"Very informative.\",\n        \"reviewDate\": \"2024-12-15T15:30:00Z\"\n    },\n    {\n        \"id\": 3,\n        \"bookIsbn\": \"1234567890A1\",\n        \"rating\": 3,\n        \"comment\": \"Good, but a bit long.\",\n        \"reviewDate\": \"2025-01-10T08:45:00Z\"\n    },\n    {\n        \"id\": 4,\n        \"bookIsbn\": \"1111111111C3\",\n        \"rating\": 1,\n        \"comment\": \"Did not like it at all.\",\n        \"reviewDate\": \"2025-05-20T12:00:00Z\"\n    },\n    {\n        \"id\": 5,\n        \"bookIsbn\": \"9876543210B2\",\n        \"rating\": 2,\n        \"comment\": null,\n        \"reviewDate\": \"2025-07-01T09:00:00Z\"\n    },\n    {\n        \"id\": 1301,\n        \"bookIsbn\": \"1234567898\",\n        \"rating\": 5,\n        \"comment\": \"Sadily\",\n        \"reviewDate\": \"2025-07-29T04:11:05Z\"\n    },\n    {\n        \"id\": 1351,\n        \"bookIsbn\": \"1234567898\",\n        \"rating\": 5,\n        \"comment\": \"Sadily\",\n        \"reviewDate\": \"2025-07-29T04:11:05Z\"\n    },\n    {\n        \"id\": 1451,\n        \"bookIsbn\": \"1234567898\",\n        \"rating\": 5,\n        \"comment\": \"Sadily\",\n        \"reviewDate\": \"2025-07-29T04:11:05Z\"\n    },\n    {\n        \"id\": 1501,\n        \"bookIsbn\": \"1234567898\",\n        \"rating\": 5,\n        \"comment\": \"Sadily\",\n        \"reviewDate\": \"2025-07-29T04:11:05Z\"\n    }\n]"}],"_postman_id":"f14c8450-2e90-4087-a030-e74c1291d34d"},{"name":"Get All Reviews By Id","id":"3f3bc868-1862-4d96-90a9-919ad5058b39","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8765/services/reviewservice/api/reviews/:id","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","reviewservice","api","reviews",":id"],"host":["http://localhost:8765"],"query":[],"variable":[{"type":"any","value":"1","key":"id"}]}},"response":[{"id":"b93ac4c7-01b0-421a-85c0-77597d9e0cab","name":"Get All Reviews By Id","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8765/services/reviewservice/api/reviews/:id","host":["http://localhost:8765"],"path":["services","reviewservice","api","reviews",":id"],"variable":[{"key":"id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 09:02:42 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1,\n    \"bookIsbn\": \"1234567890A1\",\n    \"rating\": 5,\n    \"comment\": \"Excellent read!\",\n    \"reviewDate\": \"2024-11-01T10:00:00Z\"\n}"}],"_postman_id":"3f3bc868-1862-4d96-90a9-919ad5058b39"},{"name":"Add Review","id":"7f141e02-98d6-4a74-9a6f-469f8fe3aa29","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"bookIsbn\": \"1234567898\",\r\n    \"rating\": 5,\r\n    \"comment\": \"Sadily\",\r\n    \"reviewDate\": \"2025-07-29T04:11:05Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/reviewservice/api/reviews","description":"<p>Review Service to fetch book details (e.g., by ISBN) from the Book Service to validate the book before adding a review.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","reviewservice","api","reviews"],"host":["http://localhost:8765"],"query":[],"variable":[]}},"response":[{"id":"818ef79a-909d-4542-9648-7f5c0033b423","name":"Add Review Success Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"bookIsbn\": \"1234567898\",\r\n    \"rating\": 5,\r\n    \"comment\": \"Sadily\",\r\n    \"reviewDate\": \"2025-07-29T04:11:05Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/reviewservice/api/reviews"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"Location","value":"/api/reviews/1501"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-reviewServiceApp-alert","value":"A new reviewServiceReview is created with identifier 1501"},{"key":"Date","value":"Fri, 01 Aug 2025 08:43:32 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-reviewServiceApp-params","value":"1501"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1501,\n    \"bookIsbn\": \"1234567898\",\n    \"rating\": 5,\n    \"comment\": \"Sadily\",\n    \"reviewDate\": \"2025-07-29T04:11:05Z\"\n}"},{"id":"4ee46977-a4d2-456d-97ac-a3dd9995f43b","name":"Add Review Error Response - Not Found","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"bookIsbn\": \"1234567890A1\",\r\n    \"rating\": 5,\r\n    \"comment\": \"Sadily\",\r\n    \"reviewDate\": \"2025-07-29T04:11:05Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/reviewservice/api/reviews"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 08:41:34 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"404 NOT_FOUND\",\n    \"data\": null\n}"}],"_postman_id":"7f141e02-98d6-4a74-9a6f-469f8fe3aa29"}],"id":"537d3a28-5b74-46a5-9383-b6f87d59ba52","description":"<p>To enable inter-service communication between Review Service and Book Service, we use Spring Cloud OpenFeign, a declarative REST client. This allows the Review Service to fetch book details (e.g., by ISBN) from the Book Service to validate the book before adding a review.</p>\n","_postman_id":"537d3a28-5b74-46a5-9383-b6f87d59ba52","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}}},{"name":"Order","item":[{"name":"Get all Orders","id":"94c210a2-dec6-4ee4-92e2-f01f7d095772","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8765/services/orderservice/api/orders","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","orderservice","api","orders"],"host":["http://localhost:8765"],"query":[],"variable":[]}},"response":[],"_postman_id":"94c210a2-dec6-4ee4-92e2-f01f7d095772"},{"name":"Place order","id":"b6a928c4-3665-413b-a0f0-de5b0d33eceb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"userId\": \"3\",\r\n    \"bookIsbn\": \"1234567887\",\r\n    \"quantity\": 5,\r\n    \"totalAmount\": 700.00\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/orderservice/api/orders","description":"<p>StartFragmentOrder Service and Book Service, we integrate gRPC — a modern, efficient Remote Procedure Call (RPC) framework. This allows the Order Service to query book availability, pricing, or metadata in real time before confirming or processing an order.EndFragment</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}},"urlObject":{"path":["services","orderservice","api","orders"],"host":["http://localhost:8765"],"query":[],"variable":[]}},"response":[{"id":"10478a34-86fd-4510-9492-14c58d0bc6cc","name":"Place order Error Response - Conflict","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"userId\": \"3\",\r\n    \"bookIsbn\": \"1234567898\",\r\n    \"quantity\": 10,\r\n    \"totalAmount\": 700.00\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/orderservice/api/orders"},"status":"Conflict","code":409,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 08:45:00 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"not enough stock\",\n    \"data\": null\n}"},{"id":"e2e2bb33-8968-4851-a313-0bab1e619049","name":"Place order Error Response - Not Found","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"userId\": \"3\",\r\n    \"bookIsbn\": \"1234567898AE\",\r\n    \"quantity\": 10,\r\n    \"totalAmount\": 700.00\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/orderservice/api/orders"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 08:45:44 GMT"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"book not found\",\n    \"data\": null\n}"},{"id":"342cdff5-e4ca-4abf-9671-bbd612f1aae6","name":"Place order Success Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"userId\": \"3\",\r\n    \"bookIsbn\": \"1234567898\",\r\n    \"quantity\": 5,\r\n    \"totalAmount\": 700.00\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8765/services/orderservice/api/orders"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"transfer-encoding","value":"chunked"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Expires","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"X-orderServiceApp-params","value":"1404"},{"key":"X-XSS-Protection","value":"0"},{"key":"Pragma","value":"no-cache"},{"key":"Location","value":"/api/orders/1404"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Date","value":"Fri, 01 Aug 2025 08:52:00 GMT"},{"key":"X-orderServiceApp-alert","value":"A new orderServiceOrder is created with identifier 1404"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Content-Type","value":"application/json"},{"key":"Permissions-Policy","value":"camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"},{"key":"Content-Security-Policy","value":"default-src 'self'; frame-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1404,\n    \"userId\": \"3\",\n    \"bookIsbn\": \"1234567898\",\n    \"quantity\": 5,\n    \"totalAmount\": 700\n}"}],"_postman_id":"b6a928c4-3665-413b-a0f0-de5b0d33eceb"}],"id":"07c9b69e-b675-45b2-ac99-391772285b8c","description":"<p>Order Service and Book Service, we integrate gRPC — a modern, efficient Remote Procedure Call (RPC) framework. This allows the Order Service to query book availability, pricing, or metadata in real time before confirming or processing an order.</p>\n","_postman_id":"07c9b69e-b675-45b2-ac99-391772285b8c","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"63c895fc-37e7-4575-b13e-05a9743885f1","id":"63c895fc-37e7-4575-b13e-05a9743885f1","name":"Online Bookstore (Feign & gRPC)","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]}},"event":[{"listen":"prerequest","script":{"id":"ff218542-3cb0-4e93-99bd-a987f679bdd3","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"f39d63a7-1b88-4373-b01b-08fbbe29be95","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"baseURL","value":"http://localhost:8765"}]}