Documentation
¶
Index ¶
- type APIManager
- func (am *APIManager) Close() error
- func (am *APIManager) CloseWebSocket(ctx context.Context, providerName string, request *types.WebSocketRequest) error
- func (am *APIManager) Connect(ctx context.Context, providerName string) error
- func (am *APIManager) ConnectWebSocket(ctx context.Context, providerName string, request *types.WebSocketRequest) (*types.WebSocketResponse, error)
- func (am *APIManager) Disconnect(ctx context.Context, providerName string) error
- func (am *APIManager) GetConnectedProviders() []string
- func (am *APIManager) GetDefaultProvider() (APIProvider, error)
- func (am *APIManager) GetProvider(name string) (APIProvider, error)
- func (am *APIManager) GetProviderCapabilities(providerName string) ([]types.APIFeature, *types.ConnectionInfo, error)
- func (am *APIManager) GetStats(ctx context.Context, providerName string) (*types.APIStats, error)
- func (am *APIManager) GetSupportedProviders() []string
- func (am *APIManager) HealthCheck(ctx context.Context) map[string]error
- func (am *APIManager) IsProviderConnected(providerName string) bool
- func (am *APIManager) Ping(ctx context.Context, providerName string) error
- func (am *APIManager) RegisterProvider(provider APIProvider) error
- func (am *APIManager) SendBatch(ctx context.Context, providerName string, request *types.BatchRequest) (*types.BatchResponse, error)
- func (am *APIManager) SendGraphQLRequest(ctx context.Context, providerName string, request *types.GraphQLRequest) (*types.GraphQLResponse, error)
- func (am *APIManager) SendRequest(ctx context.Context, providerName string, request *types.APIRequest) (*types.APIResponse, error)
- func (am *APIManager) SendWebSocketMessage(ctx context.Context, providerName string, request *types.WebSocketRequest, ...) (*types.WebSocketResponse, error)
- func (am *APIManager) SendgRPCRequest(ctx context.Context, providerName string, request *types.GRPCRequest) (*types.GRPCResponse, error)
- func (am *APIManager) StreamRequest(ctx context.Context, providerName string, request *types.APIRequest, ...) error
- func (am *APIManager) WebSocketStream(ctx context.Context, providerName string, request *types.WebSocketRequest, ...) error
- type APIProvider
- type ManagerConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIManager ¶
type APIManager struct {
// contains filtered or unexported fields
}
APIManager manages multiple API providers
func NewAPIManager ¶
func NewAPIManager(config *ManagerConfig, logger *logrus.Logger) *APIManager
NewAPIManager creates a new API manager
func (*APIManager) CloseWebSocket ¶
func (am *APIManager) CloseWebSocket(ctx context.Context, providerName string, request *types.WebSocketRequest) error
CloseWebSocket closes a WebSocket connection using the specified provider
func (*APIManager) Connect ¶
func (am *APIManager) Connect(ctx context.Context, providerName string) error
Connect connects to an API system using the specified provider
func (*APIManager) ConnectWebSocket ¶
func (am *APIManager) ConnectWebSocket(ctx context.Context, providerName string, request *types.WebSocketRequest) (*types.WebSocketResponse, error)
ConnectWebSocket connects to a WebSocket using the specified provider
func (*APIManager) Disconnect ¶
func (am *APIManager) Disconnect(ctx context.Context, providerName string) error
Disconnect disconnects from an API system using the specified provider
func (*APIManager) GetConnectedProviders ¶
func (am *APIManager) GetConnectedProviders() []string
GetConnectedProviders returns a list of connected providers
func (*APIManager) GetDefaultProvider ¶
func (am *APIManager) GetDefaultProvider() (APIProvider, error)
GetDefaultProvider returns the default API provider
func (*APIManager) GetProvider ¶
func (am *APIManager) GetProvider(name string) (APIProvider, error)
GetProvider returns an API provider by name
func (*APIManager) GetProviderCapabilities ¶
func (am *APIManager) GetProviderCapabilities(providerName string) ([]types.APIFeature, *types.ConnectionInfo, error)
GetProviderCapabilities returns capabilities of a provider
func (*APIManager) GetSupportedProviders ¶
func (am *APIManager) GetSupportedProviders() []string
GetSupportedProviders returns a list of registered providers
func (*APIManager) HealthCheck ¶
func (am *APIManager) HealthCheck(ctx context.Context) map[string]error
HealthCheck performs health check on all providers
func (*APIManager) IsProviderConnected ¶
func (am *APIManager) IsProviderConnected(providerName string) bool
IsProviderConnected checks if a provider is connected
func (*APIManager) Ping ¶
func (am *APIManager) Ping(ctx context.Context, providerName string) error
Ping pings an API system using the specified provider
func (*APIManager) RegisterProvider ¶
func (am *APIManager) RegisterProvider(provider APIProvider) error
RegisterProvider registers an API provider
func (*APIManager) SendBatch ¶
func (am *APIManager) SendBatch(ctx context.Context, providerName string, request *types.BatchRequest) (*types.BatchResponse, error)
SendBatch sends multiple HTTP requests using the specified provider
func (*APIManager) SendGraphQLRequest ¶
func (am *APIManager) SendGraphQLRequest(ctx context.Context, providerName string, request *types.GraphQLRequest) (*types.GraphQLResponse, error)
SendGraphQLRequest sends a GraphQL request using the specified provider
func (*APIManager) SendRequest ¶
func (am *APIManager) SendRequest(ctx context.Context, providerName string, request *types.APIRequest) (*types.APIResponse, error)
SendRequest sends an HTTP request using the specified provider
func (*APIManager) SendWebSocketMessage ¶
func (am *APIManager) SendWebSocketMessage(ctx context.Context, providerName string, request *types.WebSocketRequest, message interface{}) (*types.WebSocketResponse, error)
SendWebSocketMessage sends a message through WebSocket using the specified provider
func (*APIManager) SendgRPCRequest ¶
func (am *APIManager) SendgRPCRequest(ctx context.Context, providerName string, request *types.GRPCRequest) (*types.GRPCResponse, error)
SendgRPCRequest sends a gRPC request using the specified provider
func (*APIManager) StreamRequest ¶
func (am *APIManager) StreamRequest(ctx context.Context, providerName string, request *types.APIRequest, handler types.APIHandler) error
StreamRequest streams an API request using the specified provider
func (*APIManager) WebSocketStream ¶
func (am *APIManager) WebSocketStream(ctx context.Context, providerName string, request *types.WebSocketRequest, handler types.WebSocketHandler) error
WebSocketStream streams WebSocket messages using the specified provider
type APIProvider ¶
type APIProvider interface {
// Provider information
GetName() string
GetSupportedFeatures() []types.APIFeature
GetConnectionInfo() *types.ConnectionInfo
// Connection management
Connect(ctx context.Context) error
Disconnect(ctx context.Context) error
Ping(ctx context.Context) error
IsConnected() bool
// HTTP operations
SendRequest(ctx context.Context, request *types.APIRequest) (*types.APIResponse, error)
SendBatch(ctx context.Context, request *types.BatchRequest) (*types.BatchResponse, error)
// GraphQL operations
SendGraphQLRequest(ctx context.Context, request *types.GraphQLRequest) (*types.GraphQLResponse, error)
// gRPC operations
SendgRPCRequest(ctx context.Context, request *types.GRPCRequest) (*types.GRPCResponse, error)
// WebSocket operations
ConnectWebSocket(ctx context.Context, request *types.WebSocketRequest) (*types.WebSocketResponse, error)
SendWebSocketMessage(ctx context.Context, request *types.WebSocketRequest, message interface{}) (*types.WebSocketResponse, error)
CloseWebSocket(ctx context.Context, request *types.WebSocketRequest) error
// Advanced operations
StreamRequest(ctx context.Context, request *types.APIRequest, handler types.APIHandler) error
WebSocketStream(ctx context.Context, request *types.WebSocketRequest, handler types.WebSocketHandler) error
// Health and monitoring
HealthCheck(ctx context.Context) error
GetStats(ctx context.Context) (*types.APIStats, error)
// Configuration
Configure(config map[string]interface{}) error
IsConfigured() bool
Close() error
}
APIProvider interface for API backends
type ManagerConfig ¶
type ManagerConfig struct {
DefaultProvider string `json:"default_provider"`
RetryAttempts int `json:"retry_attempts"`
RetryDelay time.Duration `json:"retry_delay"`
Timeout time.Duration `json:"timeout"`
MaxRequestSize int64 `json:"max_request_size"`
Metadata map[string]string `json:"metadata"`
}
ManagerConfig holds API manager configuration
func DefaultManagerConfig ¶
func DefaultManagerConfig() *ManagerConfig
DefaultManagerConfig returns default API manager configuration