Supported Protocols
HTTP/HTTPS
HTTP and HTTPS protocols are Apinizer's core protocols and are fully supported.
HTTP Versions
Full support
- Keep-alive connections
- Chunked transfer encoding
- Compression (gzip, deflate, brotli)
Full support
- Multiplexing
- Server push
- Header compression
- Binary framing
TLS/SSL termination
- TLS 1.2+
- TLS 1.3 support
- SNI (Server Name Indication) support
- Certificate management
HTTP Features
HTTP Methods
- GET: Resource retrieval
- POST: Resource creation
- PUT: Resource update
- DELETE: Resource deletion
- PATCH: Partial update
- HEAD: Header information retrieval
- OPTIONS: Querying supported methods
- Custom Methods: Custom HTTP methods
- Method Override: Method override support
Content Types
- application/json: JSON format
- application/xml: XML format
- application/x-www-form-urlencoded: Form data
- multipart/form-data: Multiple form data
- text/plain, text/html: Text formats
- Custom Content Types: Custom content types
HTTP Headers
- Standard HTTP Headers: Standard HTTP headers
- Custom Headers: Custom headers
- Header Manipulation: Header manipulation
- CORS Headers: Cross-Origin Resource Sharing headers
REST
REST (Representational State Transfer) architecture is fully supported.
- Stateless communication
- Resource-based URLs
- Use of HTTP methods
- JSON/XML representation
- RESTful API design
- HATEOAS support
- Content negotiation
- Versioning support
WebSocket
WebSocket protocol is fully supported for real-time communication.
WebSocket Features
WebSocket Protocol
- RFC 6455 Compliant: Full compliance with WebSocket standard
- Full-Duplex Communication: Bidirectional communication
- Low Latency: Low latency
- Binary and Text Frame Support: Binary and text frame support
WebSocket Features
- Connection Management: Connection management
- Message Routing: Message routing
- Subprotocol Support: Subprotocol support
- Ping/Pong Frames: Ping/pong frames for connection control
Usage Scenarios
- Real-Time Notifications: Real-time notifications
- Chat Applications: Chat applications
- Live Data Streaming: Live data streaming
- Gaming Applications: Gaming applications
WebSocket Security
- TLS/SSL encryption
- Secure WebSocket connections
- Certificate management
- Token-based authentication
- Header-based authentication
- Query parameter authentication
gRPC
gRPC protocol is fully supported for microservice architectures.
gRPC Features
- Protocol Buffers (protobuf)
- Schema definition
- Code generation
- Efficient serialization
- Unary RPC: Single request-single response
- Server Streaming: Server-side streaming
- Client Streaming: Client-side streaming
- Bidirectional Streaming: Bidirectional streaming
- HTTP/2 based
- Binary serialization
- High performance
- Low latency
- Multi-language support
- Cross-platform
- Language-agnostic
gRPC Routing
gRPC Routing
- Service-Based Routing: Service-based routing
- Method-Based Routing: Method-based routing
- Load Balancing: Load balancing
- Failover: Automatic failover
gRPC Interceptors
- Request/Response Interceptors: Request/response interceptors
- Metadata Handling: Metadata management
- Error Handling: Error handling
- Policy Application: Policy support
SOAP
SOAP (Simple Object Access Protocol) web services are fully supported.
SOAP Features
SOAP Protocol
- SOAP 1.1 and SOAP 1.2: Support for both versions
- XML-Based Messaging: XML-based messaging
- WSDL Support: WSDL support
- SOAP Fault Handling: Error handling
WS-* Standards
- WS-Security: Security standards
- WS-Addressing: Addressing standards
- WS-ReliableMessaging: Reliable messaging
- WS-Policy: Policy standards
SOAP Features
- SOAP to REST Conversion: Conversion from SOAP to REST
- WSDL Generation: WSDL generation
- SOAP Fault Handling: SOAP error handling
- Attachment Support (MTOM): Attachment file support
SOAP Usage Scenarios
Integration with legacy SOAP services
Compatible operation with existing SOAP services.
Enterprise SOAP services
Full support for enterprise SOAP services.
Conversion from SOAP to REST
Exposing SOAP services as REST API.
GraphQL
Apinizer provides full support for GraphQL protocol with reverse proxy. GraphQL requests are routed directly to backend GraphQL services and all GraphQL features are supported.
- Full query support
- Field selection
- Nested queries
- Variables and fragments
- Full mutation support
- Variables support
- Complex mutations
- Subscription support
- Real-time updates over WebSocket
- Event-driven subscriptions
- Applying policies to GraphQL requests
- Rate limiting
- Authentication and authorization
- Query complexity limiting
GraphQL support works in reverse proxy mode. GraphQL requests are routed through Apinizer to backend GraphQL services and all Apinizer policies (security, rate limiting, authentication) can also be applied to GraphQL requests.
Protocol Comparison
Support Level: ✅ Full Support
Usage Scenario: REST APIs, Web services, General-purpose APIs
Support Level: ✅ Full Support
Usage Scenario: Modern APIs, Microservices, Public APIs
Support Level: ✅ Full Support
Usage Scenario: Real-time applications, Chat, Live data streaming
Support Level: ✅ Full Support
Usage Scenario: Microservice communication, High performance requirements
Support Level: ✅ Full Support
Usage Scenario: Legacy systems, Enterprise services, WS-* standards
Support Level: ✅ Full Support (Reverse Proxy)
Usage Scenario: GraphQL APIs, Flexible data querying, Modern APIs
Protocol Conversion
Apinizer can perform conversion between different protocols:
SOAP to REST
Exposing SOAP services as REST API:
- Publishing SOAP services as REST endpoints
- Creating OpenAPI spec from WSDL
- Converting XML to JSON
- Converting SOAP messages to REST request/response
REST to gRPC
Exposing REST APIs as gRPC services:
- Publishing REST endpoints as gRPC services
- Creating protocol buffer definitions
- Converting JSON to protobuf
HTTP to WebSocket
Converting HTTP requests to WebSocket messages:
- Converting HTTP requests to WebSocket messages
- Providing bidirectional communication
- Real-time communication support
Protocol Selection
When to Use:
- General-purpose APIs
- Web and mobile applications
- Public APIs
- Simple and standard API design
When to Use:
- Microservice communication
- High performance requirements
- Internal services
- Binary serialization requirement
When to Use:
- Real-time applications
- Chat, notifications
- Live data streaming
- Bidirectional communication requirement
When to Use:
- Legacy systems
- Enterprise services
- WS-* standards requirement
- Enterprise integrations
When to Use:
- Flexible data querying requirement
- Client-driven API design
- Over-fetching/under-fetching issues
- Modern APIs