Flask
Guard Flask routes with Nyraxis using before_request hooks or decorators.
Setup
pip install flask nyraxisexport NYRAXIS_API_KEY="your-api-key"
export NYRAXIS_PROJECT_ID="your-project-id"Code Example
from flask import Flask, request, jsonify, abort
from functools import wraps
from nyraxis import Nyraxis
app = Flask(__name__)
nx = Nyraxis()
# Option 1: before_request hook (global)
@app.before_request
def nyraxis_guard():
if request.method == "POST" and request.is_json:
message = request.json.get("message", "")
if message:
result = nx.evaluate(message)
if result.blocked:
abort(403, description="Blocked by policy")
# Option 2: decorator pattern (per-route)
def guard_with_nyraxis(f):
@wraps(f)
def decorated(*args, **kwargs):
message = request.json.get("message", "")
result = nx.evaluate(message)
if result.blocked:
return jsonify({"error": "Blocked by policy"}), 403
return f(*args, **kwargs)
return decorated
@app.post("/chat")
@guard_with_nyraxis
def chat():
message = request.json["message"]
return jsonify({"response": f"Processed: {message}"})What Gets Protected
- All POST requests with JSON bodies are evaluated before processing
- The
before_requesthook provides global protection across all routes - The decorator pattern allows selective per-route enforcement
- Blocked requests return 403 and never reach your application logic