{
  "info": {
    "name": "Backend Course — Full API Collection (Classes 63–117)",
    "description": "Node/Express + Python/FastAPI + Java/Spring + Databases + Microservices — সব API এক ক্লিকে test। Import → Environment: `local` (baseUrl=http://localhost:3000) select করে ব্যবহার করো।",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_postman_id": "a1b2c3d4-backend-course-2026"
  },
  "variable": [
    { "key": "baseUrl", "value": "http://localhost:3000" },
    { "key": "pyUrl", "value": "http://localhost:8000" },
    { "key": "javaUrl", "value": "http://localhost:8080" },
    { "key": "gatewayUrl", "value": "http://localhost:4000" },
    { "key": "token", "value": "" }
  ],
  "item": [
    {
      "name": "Node + Express (Batch 1)",
      "item": [
        { "name": "Health", "request": { "method": "GET", "url": "{{baseUrl}}/health" } },
        { "name": "List users", "request": { "method": "GET", "url": "{{baseUrl}}/users" } },
        { "name": "Create user", "request": { "method": "POST", "url": "{{baseUrl}}/users", "header": [{"key":"Content-Type","value":"application/json"}], "body": {"mode":"raw","raw":"{\n  \"name\": \"Rahim\",\n  \"email\": \"rahim@test.com\"\n}"} } },
        { "name": "Login", "request": { "method": "POST", "url": "{{baseUrl}}/auth/login", "header": [{"key":"Content-Type","value":"application/json"}], "body": {"mode":"raw","raw":"{\n  \"email\": \"rahim@test.com\",\n  \"password\": \"pass1234\"\n}"} } },
        { "name": "Me (JWT)", "request": { "method": "GET", "url": "{{baseUrl}}/me", "header": [{"key":"Authorization","value":"Bearer {{token}}"}] } }
      ]
    },
    {
      "name": "Python + FastAPI (Batch 2)",
      "item": [
        { "name": "Root", "request": { "method": "GET", "url": "{{pyUrl}}/" } },
        { "name": "List items", "request": { "method": "GET", "url": "{{pyUrl}}/items" } },
        { "name": "Create item", "request": { "method": "POST", "url": "{{pyUrl}}/items", "header": [{"key":"Content-Type","value":"application/json"}], "body": {"mode":"raw","raw":"{\n  \"name\": \"Pen\",\n  \"price\": 20\n}"} } },
        { "name": "Login (OAuth2 form)", "request": { "method": "POST", "url": "{{pyUrl}}/auth/login", "header": [{"key":"Content-Type","value":"application/x-www-form-urlencoded"}], "body": {"mode":"urlencoded","urlencoded":[{"key":"username","value":"rahim"},{"key":"password","value":"pass1234"}]} } }
      ]
    },
    {
      "name": "Java + Spring Boot (Batch 3)",
      "item": [
        { "name": "Health (actuator)", "request": { "method": "GET", "url": "{{javaUrl}}/actuator/health" } },
        { "name": "List products", "request": { "method": "GET", "url": "{{javaUrl}}/api/products" } },
        { "name": "Create product", "request": { "method": "POST", "url": "{{javaUrl}}/api/products", "header": [{"key":"Content-Type","value":"application/json"}], "body": {"mode":"raw","raw":"{\n  \"name\": \"Book\",\n  \"price\": 199.99\n}"} } },
        { "name": "Login", "request": { "method": "POST", "url": "{{javaUrl}}/auth/login", "header": [{"key":"Content-Type","value":"application/json"}], "body": {"mode":"raw","raw":"{\n  \"email\": \"rahim@test.com\",\n  \"password\": \"pass1234\"\n}"} } }
      ]
    },
    {
      "name": "Database Layer (Batch 4)",
      "item": [
        { "name": "MySQL — list users via API", "request": { "method": "GET", "url": "{{baseUrl}}/users" } },
        { "name": "MySQL — get user by id", "request": { "method": "GET", "url": "{{baseUrl}}/users/1" } },
        { "name": "Postgres — list orders", "request": { "method": "GET", "url": "{{baseUrl}}/orders" } },
        { "name": "MongoDB — list posts", "request": { "method": "GET", "url": "{{baseUrl}}/posts" } },
        { "name": "MongoDB — create post", "request": { "method": "POST", "url": "{{baseUrl}}/posts", "header": [{"key":"Content-Type","value":"application/json"}], "body": {"mode":"raw","raw":"{\n  \"title\": \"Hello\",\n  \"body\": \"World\",\n  \"tags\": [\"blog\"]\n}"} } },
        { "name": "Redis — cached weather", "request": { "method": "GET", "url": "{{baseUrl}}/weather/dhaka" } }
      ]
    },
    {
      "name": "Microservices (Batch 5)",
      "item": [
        { "name": "Gateway — /api/products", "request": { "method": "GET", "url": "{{gatewayUrl}}/api/products" } },
        { "name": "Gateway — /api/orders (JWT)", "request": { "method": "POST", "url": "{{gatewayUrl}}/api/orders", "header": [{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer {{token}}"}], "body": {"mode":"raw","raw":"{\n  \"productId\": 1,\n  \"qty\": 2\n}"} } },
        { "name": "Order Service (internal) — GET /orders/1", "request": { "method": "GET", "url": "http://localhost:4001/orders/1" } },
        { "name": "Payment Service (internal) — POST /pay", "request": { "method": "POST", "url": "http://localhost:4002/pay", "header": [{"key":"Content-Type","value":"application/json"}], "body": {"mode":"raw","raw":"{\n  \"orderId\": 1,\n  \"amount\": 500\n}"} } }
      ]
    },
    {
      "name": "DevOps / System Design (Batch 6-7)",
      "item": [
        { "name": "K8s — Ingress /api", "request": { "method": "GET", "url": "http://api.example.local/health" } },
        { "name": "Realtime — SSE stream", "request": { "method": "GET", "url": "{{baseUrl}}/events", "header": [{"key":"Accept","value":"text/event-stream"}] } },
        { "name": "Presigned upload", "request": { "method": "POST", "url": "{{baseUrl}}/uploads/presign", "header": [{"key":"Content-Type","value":"application/json"}], "body": {"mode":"raw","raw":"{\n  \"filename\": \"a.png\",\n  \"contentType\": \"image/png\"\n}"} } },
        { "name": "Payment webhook", "request": { "method": "POST", "url": "{{baseUrl}}/webhooks/payment", "header": [{"key":"Content-Type","value":"application/json"},{"key":"Payment-Signature","value":"replace-with-hmac"}], "body": {"mode":"raw","raw":"{\n  \"event\": \"payment.succeeded\",\n  \"id\": \"evt_123\",\n  \"orderId\": 1\n}"} } }
      ]
    }
  ]
}