Error Explorer SDK for FastAPI
Project description
Error Explorer FastAPI SDK
Official FastAPI integration for Error Explorer error tracking.
Installation
pip install error-explorer-fastapi
Quick Start
from fastapi import FastAPI
from error_explorer import ErrorExplorer
from error_explorer_fastapi import ErrorExplorerMiddleware
# Initialize Error Explorer
ErrorExplorer.init({
"token": "your-project-token",
"environment": "production",
})
# Create FastAPI app with middleware
app = FastAPI()
app.add_middleware(ErrorExplorerMiddleware)
@app.get("/")
async def root():
return {"message": "Hello, World!"}
Using setup_error_explorer
For convenience, you can use the setup function:
from fastapi import FastAPI
from error_explorer import ErrorExplorer
from error_explorer_fastapi.middleware import setup_error_explorer
app = FastAPI()
ErrorExplorer.init({"token": "your-token"})
setup_error_explorer(app)
Configuration
The middleware accepts several configuration options:
app.add_middleware(
ErrorExplorerMiddleware,
# Capture user info from request.state.user
capture_user=True,
# Send PII (email, IP address)
send_default_pii=False,
# Capture 404 errors
capture_404=False,
# Capture 403 errors
capture_403=False,
)
Features
Automatic Error Capture
All unhandled exceptions are automatically captured:
@app.get("/error")
async def trigger_error():
raise ValueError("Something went wrong")
# This is automatically captured
Request Breadcrumbs
HTTP requests are logged as breadcrumbs:
→ GET /api/users
← 200 OK
User Context
Set user context via request state (typically done by auth middleware):
@app.middleware("http")
async def auth_middleware(request: Request, call_next):
user = await get_current_user(request)
request.state.user = user # User context captured automatically
return await call_next(request)
Logging Handler
Use the logging handler to capture log messages:
import logging
from error_explorer_fastapi import ErrorExplorerHandler
# Add handler to root logger
handler = ErrorExplorerHandler(level=logging.WARNING)
logging.getLogger().addHandler(handler)
# Now WARNING and above are captured
logging.warning("This will be a breadcrumb")
logging.error("This will be captured as an event")
Manual Error Capture
from error_explorer import ErrorExplorer
@app.get("/process")
async def process():
try:
await risky_operation()
except Exception as e:
ErrorExplorer.get_client().capture_exception(e)
raise HTTPException(status_code=500, detail="Error occurred")
Adding Context
from error_explorer import ErrorExplorer, Breadcrumb
@app.get("/checkout")
async def checkout():
client = ErrorExplorer.get_client()
# Add custom breadcrumb
client.add_breadcrumb(Breadcrumb(
message="User started checkout",
category="checkout",
data={"cart_items": 5}
))
# Set additional context
client.set_context("order", {
"total": 99.99,
"currency": "USD"
})
return await process_checkout()
Async Support
The middleware is fully async-compatible:
@app.get("/async-operation")
async def async_operation():
result = await some_async_function()
return {"result": result}
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file error_explorer_fastapi-1.1.1.tar.gz.
File metadata
- Download URL: error_explorer_fastapi-1.1.1.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10b7a06cbfda7dce7e6a45ff7ee057639fd108344e02a5f9466ed6eeb039c4a9
|
|
| MD5 |
769d02ff2359a5096911c83e9616751b
|
|
| BLAKE2b-256 |
62956279d5b68db4bf6f602801fbabf0753a9dac80de6a00a09c18399003c036
|
File details
Details for the file error_explorer_fastapi-1.1.1-py3-none-any.whl.
File metadata
- Download URL: error_explorer_fastapi-1.1.1-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b454eb3596f0f7a95b7a5e3ef848cc01f805ad84060819ee23b5e2092ecbbfe
|
|
| MD5 |
8e8c3d0141b9b425082a98568052a211
|
|
| BLAKE2b-256 |
d2d469d1410aa91058d94c51390c9dadcad841120e1b88fb076481502d96fb6f
|