Simple API monitoring and API key management for REST APIs built with FastAPI, Flask, Django, and Starlette.
Project description
Your refreshingly simple REST API companion.
Apitally is a simple and affordable API monitoring and API key management solution with a focus on data privacy. It is easy to set up and use for new and existing API projects using Python or Node.js.
Apitally client library for Python
This client library for Apitally currently supports the following Python web frameworks:
Learn more about Apitally on our 🌎 website or check out the 📚 documentation.
Key features
- Middleware for different frameworks to capture metadata about API endpoints, requests and responses (no sensitive data is captured)
- Non-blocking clients that aggregate and send captured data to Apitally and optionally synchronize API key hashes in 1 minute intervals
- Functions to easily secure endpoints with API key authentication and permission checks
Install
Use pip
to install and provide your framework of choice as an extra, for
example:
pip install apitally[fastapi]
The available extras are: fastapi
, starlette
, flask
, django_ninja
and
django_rest_framework
.
Usage
Our setup guides include all the details you need to get started.
FastAPI
This is an example of how to add the Apitally middleware to a FastAPI application. For further instructions, see our setup guide for FastAPI.
from fastapi import FastAPI
from apitally.fastapi import ApitallyMiddleware
app = FastAPI()
app.add_middleware(
ApitallyMiddleware,
client_id="your-client-id",
env="dev", # or "prod" etc.
)
Starlette
This is an example of how to add the Apitally middleware to a Starlette application. For further instructions, see our setup guide for Starlette.
from starlette.applications import Starlette
from apitally.starlette import ApitallyMiddleware
app = Starlette(routes=[...])
app.add_middleware(
ApitallyMiddleware,
client_id="your-client-id",
env="dev", # or "prod" etc.
)
Flask
This is an example of how to add the Apitally middleware to a Flask application. For further instructions, see our setup guide for Flask.
from flask import Flask
from apitally.flask import ApitallyMiddleware
app = Flask(__name__)
app.wsgi_app = ApitallyMiddleware(
app,
client_id="your-client-id",
env="dev", # or "prod" etc.
)
Django Ninja
This is an example of how to add the Apitally middleware to a Django Ninja application. For further instructions, see our setup guide for Django Ninja.
In your Django settings.py
file:
MIDDLEWARE = [
"apitally.django_ninja.ApitallyMiddleware",
# Other middleware ...
]
APITALLY_MIDDLEWARE = {
"client_id": "your-client-id",
"env": "dev", # or "prod" etc.
}
Django REST Framework
This is an example of how to add the Apitally middleware to a Django REST Framework application. For further instructions, see our setup guide for Django REST Framework.
In your Django settings.py
file:
MIDDLEWARE = [
"apitally.django_rest_framework.ApitallyMiddleware",
# Other middleware ...
]
APITALLY_MIDDLEWARE = {
"client_id": "your-client-id",
"env": "dev", # or "prod" etc.
}
Getting help
If you need help please create a new discussion on GitHub.
License
This library is licensed under the terms of the MIT license.
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
File details
Details for the file apitally-0.3.4.tar.gz
.
File metadata
- Download URL: apitally-0.3.4.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.2.0-1018-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1917ace49781a04961324430286d55fbd83562eaf48f4e1a0b2403f1c94ebe5 |
|
MD5 | ab192356745be8a7e99482eaee3f848a |
|
BLAKE2b-256 | 9138246ff213f46c9fcb594fc2f5e36cc96745de872c9505dc7e9a6f9a38a4dd |
File details
Details for the file apitally-0.3.4-py3-none-any.whl
.
File metadata
- Download URL: apitally-0.3.4-py3-none-any.whl
- Upload date:
- Size: 22.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.2.0-1018-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 381af76d009af969b9589ba3caa07630ea397f610f91dee2f19a0efee5bb6229 |
|
MD5 | 532fa371e22bbd22009a2ad201df6c24 |
|
BLAKE2b-256 | dc5bed4bf773eb0c24b4a9c90f85ca28316e37aee9df7cc067d1d20c1e3e38b5 |