API Reference¶
This section contains the complete API reference for RequestX.
Overview¶
RequestX provides a simple, intuitive API that’s fully compatible with the requests library. The API is organized into several main components:
- HTTP Functions
Top-level functions for making HTTP requests:
get(),post(),put(), etc.- Response Objects
The
Responseclass that represents HTTP responses with methods likejson(),text, etc.- Session Objects
The
Sessionclass for persistent connections, cookies, and configuration.- Exceptions
Exception classes for handling various error conditions.
Quick Reference¶
Making Requests
import requestx
# Basic requests
response = requestx.get(url, **kwargs)
response = requestx.post(url, data=None, json=None, **kwargs)
response = requestx.put(url, data=None, **kwargs)
response = requestx.patch(url, data=None, **kwargs)
response = requestx.delete(url, **kwargs)
response = requestx.head(url, **kwargs)
response = requestx.options(url, **kwargs)
Common Parameters
requestx.get(
url,
params=None, # URL parameters
headers=None, # HTTP headers
cookies=None, # Cookies
auth=None, # Authentication
timeout=None, # Request timeout
allow_redirects=True, # Follow redirects
proxies=None, # Proxy configuration
verify=True, # SSL verification
stream=False, # Stream response
cert=None # Client certificate
)
Response Properties
response.status_code # HTTP status code
response.headers # Response headers
response.text # Response text
response.content # Response bytes
response.json() # Parse JSON response
response.url # Final URL
response.cookies # Response cookies
response.history # Redirect history
Session Usage
session = requestx.Session()
session.headers.update({'Authorization': 'Bearer token'})
response = session.get(url)
Error Handling
from requestx import RequestException, HTTPError, ConnectionError, Timeout
try:
response = requestx.get(url, timeout=10)
response.raise_for_status()
except HTTPError as e:
# Handle HTTP errors (4xx, 5xx)
pass
except ConnectionError as e:
# Handle connection errors
pass
except Timeout as e:
# Handle timeout errors
pass
except RequestException as e:
# Handle all request errors
pass
Async/Await Support¶
All functions and methods support async/await with automatic context detection:
import asyncio
import requestx
# Synchronous usage
response = requestx.get('https://api.example.com')
# Asynchronous usage (same API!)
async def fetch_data():
response = await requestx.get('https://api.example.com')
return response.json()
data = asyncio.run(fetch_data())
Type Hints¶
RequestX includes comprehensive type hints for better IDE support:
from typing import Optional, Dict, Any
import requestx
def fetch_json(url: str, headers: Optional[Dict[str, str]] = None) -> Dict[str, Any]:
response: requestx.Response = requestx.get(url, headers=headers)
response.raise_for_status()
return response.json()
Compatibility¶
RequestX maintains 100% API compatibility with the requests library for all documented features. This means:
All function signatures are identical
All response properties and methods work the same way
All exception types and hierarchies are preserved
All session functionality is compatible
The only difference is improved performance and native async/await support.
Module Structure¶
requestx/
├── __init__.py # Main module with public API
├── _requestx # Compiled Rust extension
├── exceptions.py # Exception classes
└── models.py # Response and Session classes
For detailed information about each component, see the individual API reference pages.