Files
aitbc/apps/api-gateway
aitbc 56938fb2c4
Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Integration Tests / test-service-integration (push) Has been cancelled
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Python Tests / test-python (push) Has been cancelled
Security Scanning / security-scan (push) Has been cancelled
CLI Tests / test-cli (push) Failing after 10s
Package Tests / Python package - aitbc-agent-sdk (push) Successful in 26s
Package Tests / Python package - aitbc-core (push) Failing after 3s
Package Tests / Python package - aitbc-crypto (push) Successful in 13s
Package Tests / Python package - aitbc-sdk (push) Successful in 12s
Package Tests / JavaScript package - aitbc-sdk-js (push) Successful in 11s
Package Tests / JavaScript package - aitbc-token (push) Successful in 17s
security: update vulnerable dependencies in subdirectory pyproject.toml files
- Root pyproject.toml: urllib3 >=2.6.3 -> >=2.7.0
- packages/py/aitbc-sdk: requests >=2.31.0 -> >=2.32.4, httpx >=0.25.0 -> >=0.28.1
- packages/py/aitbc-agent-sdk: requests >=2.31.0 -> >=2.32.4, pydantic >=2.5.0 -> >=2.11.0
- apps/aitbc-edge-api: updated all dependencies to match secure versions
- apps/api-gateway: uvicorn ^0.24.0 -> >=0.34.0
- examples/stubs/aitbc-ai-service: updated uvicorn, sqlmodel, sqlalchemy, pydantic, pydantic-settings
2026-05-20 08:23:30 +02:00
..

AITBC API Gateway

Routes requests to AITBC microservices.

Service Registry

The gateway routes requests to the following services:

  • GPU Service (port 8101): /gpu/* → GPU resource management
  • Marketplace Service (port 8102): /marketplace/* → GPU marketplace
  • Agent Service (port 8103): /agent/* → Agent operations
  • Trading Service (port 8104): /trading/* → Trading operations
  • Governance Service (port 8105): /governance/* → Governance operations
  • Coordinator API (port 8000): /coordinator/* → Coordinator API (default)

Installation

cd /opt/aitbc
poetry install --with api-gateway

Running

# Development
python -m api_gateway.main

# Production (systemd)
sudo systemctl start api-gateway
sudo systemctl enable api-gateway

Testing

Prerequisites

  • All microservices installed via Poetry
  • At least one microservice running (e.g., GPU service)
  • Microservice database created (if testing that service)

Start Gateway (Development)

python -m api_gateway.main

Health Check

curl http://localhost:8080/health

Expected response:

{"status": "healthy", "service": "api-gateway"}

Service Registry

curl http://localhost:8080/services

Expected response:

{
  "services": [
    {
      "name": "gpu",
      "url": "http://localhost:8101",
      "health_check": "/health",
      "routes": ["/gpu/*"]
    },
    {
      "name": "marketplace",
      "url": "http://localhost:8102",
      "health_check": "/health",
      "routes": ["/marketplace/*"]
    },
    {
      "name": "trading",
      "url": "http://localhost:8104",
      "health_check": "/health",
      "routes": ["/trading/*"]
    },
    {
      "name": "governance",
      "url": "http://localhost:8105",
      "health_check": "/health",
      "routes": ["/governance/*"]
    }
  ]
}

Test Routing to GPU Service

  1. Start GPU service in another terminal:

    python -m gpu_service.main
    
  2. Test through gateway:

    curl http://localhost:8080/gpu/health
    

Expected response:

{"status": "healthy", "service": "gpu-service"}

Test Routing to Marketplace Service

  1. Start Marketplace service in another terminal:

    python -m marketplace_service.main
    
  2. Test through gateway:

    curl http://localhost:8080/marketplace/health
    

Expected response:

{"status": "healthy", "service": "marketplace-service"}

Test Routing to Trading Service

  1. Start Trading service in another terminal:

    python -m trading_service.main
    
  2. Test through gateway:

    curl http://localhost:8080/trading/health
    

Expected response:

{"status": "healthy", "service": "trading-service"}

Test Routing to Governance Service

  1. Start Governance service in another terminal:

    python -m governance_service.main
    
  2. Test through gateway:

    curl http://localhost:8080/governance/health
    

Expected response:

{"status": "healthy", "service": "governance-service"}

For comprehensive testing procedures, see MICROSERVICES_TESTING_GUIDE.md.

Endpoints

  • GET /health - Health check
  • GET /services - List registered services
  • /* - Proxy all other requests to appropriate microservice

Configuration

Service URLs are configured in main.py under the SERVICES dictionary.