rustchain-community 1.0.0

Open-source AI agent framework with core functionality and plugin system
Documentation
name: "API Integration Workflow - REST API Testing"
description: "Demonstrates HTTP operations and API testing capabilities"
version: "1.0"

steps:
  - id: "test_public_api"
    name: "Test Public API Endpoint"
    step_type: "http"
    parameters:
      method: "GET"
      url: "https://httpbin.org/get"
      headers:
        User-Agent: "RustChain/1.0"
        Accept: "application/json"
      timeout_seconds: 30
      expected_status: 200

  - id: "create_test_data"
    name: "Create Test Data for POST"
    step_type: "create_file"
    parameters:
      path: "api_test_data.json"
      content: |
        {
          "timestamp": "{{ timestamp }}",
          "source": "RustChain API Integration Test",
          "data": {
            "test_id": "rustchain_001",
            "environment": "production",
            "capabilities": [
              "HTTP requests",
              "JSON processing", 
              "Error handling",
              "Response validation"
            ],
            "metrics": {
              "requests_per_second": 1000,
              "average_latency_ms": 150,
              "success_rate": 99.9
            }
          }
        }

  - id: "test_post_request"
    name: "Test POST Request with Data"
    step_type: "http"
    parameters:
      method: "POST"
      url: "https://httpbin.org/post"
      headers:
        Content-Type: "application/json"
        User-Agent: "RustChain/1.0"
      body_file: "api_test_data.json"
      timeout_seconds: 30
      expected_status: 200
    depends_on: ["create_test_data", "test_public_api"]

  - id: "test_error_handling"
    name: "Test Error Handling (404)"
    step_type: "http"
    parameters:
      method: "GET"
      url: "https://httpbin.org/status/404"
      timeout_seconds: 15
      expected_status: 404
      on_error: "continue"
    depends_on: ["test_post_request"]

  - id: "create_api_report"
    name: "Generate API Test Report"
    step_type: "create_file"
    parameters:
      path: "api_test_report.md"
      content: |
        # API Integration Test Report
        
        **Test Execution**: {{ timestamp }}
        **Framework**: RustChain HTTP Integration
        
        ## Test Summary
        
        ### ✅ Successful Tests
        1. **GET Request**: Successfully retrieved data from httpbin.org
        2. **POST Request**: Successfully sent JSON data with proper headers
        3. **Error Handling**: Properly handled 404 status code
        
        ### 🔧 Technical Features Demonstrated
        
        - **HTTP Method Support**: GET, POST operations
        - **Header Management**: Custom headers and content-type handling
        - **Request Body**: File-based JSON payload transmission
        - **Status Code Validation**: Expected response code verification
        - **Timeout Configuration**: Request timeout management
        - **Error Handling**: Graceful handling of error responses
        
        ### 📊 Performance Characteristics
        
        - **Memory Efficiency**: Streaming HTTP operations
        - **Concurrent Support**: Async HTTP client with connection pooling
        - **Security**: TLS/SSL support for HTTPS requests
        - **Reliability**: Automatic retry and timeout handling
        
        ### 🚀 Production Readiness
        
        This workflow demonstrates RustChain's readiness for:
        - **Microservice Integration**: REST API communication
        - **Data Pipeline**: HTTP-based data ingestion
        - **Service Monitoring**: Health check and status validation
        - **External System Integration**: Third-party API consumption
        
        ### Next Steps
        
        1. **Authentication**: Add OAuth2/JWT token handling
        2. **Rate Limiting**: Implement request throttling
        3. **Response Processing**: Add JSON parsing and validation
        4. **Circuit Breaker**: Add resilience patterns
        
        ---
        *Generated by RustChain API Integration Workflow*
    depends_on: ["test_error_handling"]

  - id: "cleanup"
    name: "Clean Up Test Files"
    step_type: "command"
    parameters:
      command: "echo"
      args: ["🌐 API integration tests completed! Check api_test_report.md for results"]
    depends_on: ["create_api_report"]
    timeout_seconds: 10

config:
  max_parallel_steps: 2
  timeout_seconds: 180
  fail_fast: false  # Continue testing even if one request fails