[ { "id": "external-api-tab", "type": "tab", "label": "POD Gateway · External API", "disabled": false, "info": "One-tab example: central Gateway + Redis, a protected API adapter, synchronous Gateway Call and asynchronous Gateway Out/In." }, { "id": "external-api-server", "type": "pod-gateway-server-config", "name": "Central Gateway + Redis", "host": "0.0.0.0", "port": 8080, "path": "/ws", "redisUrl": "redis://127.0.0.1:6379", "redisRejectUnauthorized": true, "redisKeyPrefix": "pod-gateway-external-demo", "redisConsumer": "external-demo-gateway", "redisMaxQueueSize": 10000, "redisResultTtlSeconds": 3600, "redisDeleteOnAck": true, "redisRetryPollMs": 250, "rateLimits": "{\"worldtime\":{\"rate\":5,\"burst\":1}}", "concurrency": 8, "upstreamTimeoutMs": 60000, "maxAttempts": 0, "verboseLogging": false, "credentials": {} }, { "id": "external-api-config", "type": "pod-gateway-api-config", "name": "API Ninjas World Time", "baseUrl": "https://api.api-ninjas.com", "headers": "{\"Accept\":\"application/json\"}", "apiKeyHeader": "X-Api-Key", "apiKeyPrefix": "", "credentials": {} }, { "id": "external-api-adapter", "type": "pod-gateway-adapter", "name": "GET Europe/Kyiv time", "server": "external-api-server", "api": "external-api-config", "operation": "worldtime/getKyivTime", "label": "API Ninjas · Kyiv time", "path": "/v1/worldtime?timezone=Europe/Kyiv", "method": "GET", "headers": "{}", "idempotencyHeader": "", "description": "Fetch current time in Europe/Kyiv through the central Gateway." }, { "id": "external-api-pod-gateway", "type": "pod-gateway-config", "name": "POD connector", "url": "ws://127.0.0.1:8080/ws", "podId": "pod-external-demo", "connectTimeout": 10000, "reconnectInterval": 3000, "verboseLogging": false, "credentials": {} }, { "id": "external-api-call-inject", "type": "inject", "z": "external-api-tab", "name": "Call API Ninjas", "props": [{ "p": "payload" }], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "{}", "payloadType": "json", "x": 170, "y": 120, "wires": [["external-api-call"]] }, { "id": "external-api-call", "type": "pod-gateway-call", "z": "external-api-tab", "name": "Gateway Call: API Ninjas", "gateway": "external-api-pod-gateway", "operation": "worldtime/getKyivTime", "timeout": 60000, "priority": "normal", "x": 410, "y": 120, "wires": [["external-api-call-result"], ["external-api-call-error"]] }, { "id": "external-api-call-result", "type": "debug", "z": "external-api-tab", "name": "Same connector: Kyiv time", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 700, "y": 100, "wires": [] }, { "id": "external-api-call-error", "type": "debug", "z": "external-api-tab", "name": "Gateway Call error", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 680, "y": 140, "wires": [] }, { "id": "external-api-out-inject", "type": "inject", "z": "external-api-tab", "name": "Send async API Ninjas request", "props": [{ "p": "payload" }], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "{}", "payloadType": "json", "x": 200, "y": 260, "wires": [["external-api-out"]] }, { "id": "external-api-out", "type": "pod-gateway-out", "z": "external-api-tab", "name": "Gateway Out: API Ninjas", "gateway": "external-api-pod-gateway", "operation": "worldtime/getKyivTime", "priority": "bulk", "acceptTimeout": 10000, "x": 440, "y": 260, "wires": [["external-api-out-accepted"], ["external-api-out-error"]] }, { "id": "external-api-out-accepted", "type": "debug", "z": "external-api-tab", "name": "Same connector: accepted", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 700, "y": 240, "wires": [] }, { "id": "external-api-out-error", "type": "debug", "z": "external-api-tab", "name": "Gateway Out error", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 690, "y": 280, "wires": [] }, { "id": "external-api-in", "type": "pod-gateway-in", "z": "external-api-tab", "name": "Gateway In: async result", "gateway": "external-api-pod-gateway", "event": "worldtime/getKyivTime", "x": 250, "y": 380, "wires": [["external-api-in-result"]] }, { "id": "external-api-in-result", "type": "debug", "z": "external-api-tab", "name": "Async Kyiv time in same POD", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 570, "y": 380, "wires": [] } ]