Python Guide


The repository for our open source Python middleware can be found here.


Installation

Install with pip:

pip install apilytics

Install with poetry:

poetry add apilytics

Enable the middleware and set your API key: A good practice is to securely store the API key as an environment variable. You can leave the env variable unset in e.g. development and test environments, the middleware will be automatically disabled if the key is None.


Django

# settings.py

import os

APILYTICS_API_KEY = os.getenv("APILYTICS_API_KEY")

MIDDLEWARE = [
    "apilytics.django.ApilyticsMiddleware",  # Ideally the first middleware in the list.
    # ...
]

FastAPI

# main.py

import os

from apilytics.fastapi import ApilyticsMiddleware
from fastapi import FastAPI

app = FastAPI()

# Ideally last first middleware you add.
app.add_middleware(ApilyticsMiddleware, api_key=os.getenv("APILYTICS_API_KEY"))

Flask

# app.py

import os

from apilytics.flask import apilytics_middleware
from flask import Flask

app = Flask(__name__)

# Ideally wrap your app with the middleware before you do anything else with it.
app = apilytics_middleware(app, api_key=os.getenv("APILYTICS_API_KEY"))

Other Python Frameworks

# my_apilytics_middleware.py

import os

from apilytics.core import ApilyticsSender


def my_apilytics_middleware(request, get_response):
    api_key = os.getenv("APILYTICS_API_KEY")
    if not api_key:
        return get_response(request)

    with ApilyticsSender(
        api_key=api_key,
        path=request.path,
        query=request.query_string,
        method=request.method,
        request_size=len(request.body),
        user_agent=request.headers.get("user-agent"),
    ) as sender:
        response = get_response(request)
        sender.set_response_info(
            status_code=response.status_code,
            response_size=len(response.body),
        )
    return response

Last updated: February 1, 2022

Help us improve these docs by giving us feedback.