Skip to content

Commit

Permalink
Update metadata and README
Browse files Browse the repository at this point in the history
  • Loading branch information
itssimon committed Oct 3, 2023
1 parent 298bbe4 commit 9b21cc1
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 31 deletions.
96 changes: 68 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,85 +1,125 @@
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/apitally/assets/main/logo-vertical-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/apitally/assets/main/logo-vertical-light.png">
<img alt="Apitally logo" src="https://raw.githubusercontent.com/apitally/assets/main/logo-vertical-light.png">
</picture>
</p>

<p align="center"><b>Your refreshingly simple REST API companion.</b></p>

<p align="center"><i>Apitally offers API traffic monitoring and integrated API key management that is extremely easy to set up and use with new and existing API projects. No assumptions made about your infrastructure, no extra tools for you to host and maintain.</i></p>

<p align="center">🔗 <b><a href="https://apitally.io" target="_blank">apitally.io</a></b></p>

![Apitally screenshots](https://raw.githubusercontent.com/apitally/assets/main/overview.png)

---

# Apitally client for Python

[![Tests](https://github.com/apitally/python-client/actions/workflows/tests.yaml/badge.svg?event=push)](https://github.com/apitally/python-client/actions)
[![Codecov](https://codecov.io/gh/apitally/python-client/graph/badge.svg?token=UNLYBY4Y3V)](https://codecov.io/gh/apitally/python-client)
[![PyPI](https://img.shields.io/pypi/v/apitally?logo=pypi&logoColor=white&color=%23006dad)](https://pypi.org/project/apitally/)

Apitally client library for Python.
This client library currently supports the following frameworks:

Currently supports the following frameworks:
- [FastAPI](https://docs.apitally.io/frameworks/fastapi)
- [Starlette](https://docs.apitally.io/frameworks/starlette)
- [Flask](https://docs.apitally.io/frameworks/flask)
- [Django Ninja](https://docs.apitally.io/frameworks/django-ninja)
- [Django REST Framework](https://docs.apitally.io/frameworks/django-rest-framework)

- [FastAPI](https://fastapi.tiangolo.com/)
- [Starlette](https://www.starlette.io/)
- [Django Ninja](https://django-ninja.rest-framework.com/)
- [Django REST Framework](https://www.django-rest-framework.org/)
- [Flask](https://flask.palletsprojects.com/)

## Installation
## Install

Use `pip` to install and provide your framework of choice as an extra, for example:

```bash
pip install apitally[fastapi]
```

The available extras are: `fastapi`, `starlette`, `django_ninja`, `django_rest_framework` and `flask`.
The available extras are: `fastapi`, `starlette`, `flask`, `django_ninja` and `django_rest_framework`.

## Basic usage
## Usage

Below are basic usage examples for each supported framework. For more detailed instructions and examples, including on how to use Apitally API key authentication, see the [documentation](https://docs.apitally.com/).
Below are basic usage examples for each supported framework. For further instructions and examples, including how to identify consumers and use API key authentication, check out our [documentation](https://docs.apitally.io/).

### With FastAPI
### FastAPI

```python
from fastapi import FastAPI
from apitally.fastapi import ApitallyMiddleware

app = FastAPI()
app.add_middleware(ApitallyMiddleware, client_id="<your-client-id>")
app.add_middleware(
ApitallyMiddleware,
client_id="your-client-id",
env="your-env-name",
)
```

### With Starlette
### Starlette

```python
from starlette.applications import Starlette
from apitally.starlette import ApitallyMiddleware

app = Starlette()
app.add_middleware(ApitallyMiddleware, client_id="<your-client-id>")
app = Starlette(routes=[...])
app.add_middleware(
ApitallyMiddleware,
client_id="your-client-id",
env="your-env-name",
)
```

### With Django Ninja
### Flask

```python
from flask import Flask
from apitally.flask import ApitallyMiddleware

app = Flask(__name__)
app.wsgi_app = ApitallyMiddleware(
app,
client_id="your-client-id",
env="your-env-name",
)
```

### Django Ninja

In your Django `settings.py` file:

```python
MIDDLEWARE = [
# Other middlewares first ...
"apitally.django_ninja.ApitallyMiddleware",
]
APITALLY_MIDDLEWARE = {
"client_id": "<your-client-id>",
"client_id": "your-client-id",
"env": "your-env-name",
}
```

### With Django REST Framework
### Django REST Framework

In your Django `settings.py` file:

```python
MIDDLEWARE = [
# Other middlewares first ...
"apitally.django_rest_framework.ApitallyMiddleware",
]
APITALLY_MIDDLEWARE = {
"client_id": "<your-client-id>",
"client_id": "your-client-id",
"env": "your-env-name",
}
```

### With Flask
## Getting help

```python
from flask import Flask
from apitally.flask import ApitallyMiddleware
If you need help please join our [Apitally community on Slack](https://apitally-community.slack.com/) or [create a new discussion](https://github.com/orgs/apitally/discussions/categories/q-a) on GitHub.

app = Flask(__name__)
app.wsgi_app = ApitallyMiddleware(app, client_id="<your-client-id>")
```
## License

This library is licensed under the terms of the MIT license.
14 changes: 11 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,18 @@ build-backend = "poetry_dynamic_versioning.backend"
name = "apitally"
version = "0.0.0"
description = "Apitally client library for Python"
authors = ["Simon Gurcke <[email protected]>"]
license = "MIT License"
repository = "https://github.com/apitally/apitally-python"
readme = "README.md"
authors = ["Apitally <[email protected]>"]
license = "MIT License"
homepage = "https://docs.apitally.io"
documentation = "https://docs.apitally.io"
repository = "https://github.com/apitally/python-client"
classifiers = [
"Framework :: FastAPI",
"Framework :: Django",
"Framework :: Flask",
"Intended Audience :: Developers",
]

[tool.poetry.dependencies]
backoff = ">=2.0.0"
Expand Down

0 comments on commit 9b21cc1

Please sign in to comment.