# [FastAPI](https://fastapi.tiangolo.com/) middleware
## Introduction
`fastapi-middleware` is a set of middlewares for [FastAPI](https://fastapi.tiangolo.com/) framework.
## Installation
```shell
pip install fastapi-middleware
```
## Usage
To use middleware, you need to import it and add to your FastAPI app:
```python
from fastapi import FastAPI
...
from fastapi_middleware import (
GlobalContextMiddleware,
global_ctx,
SQLQueriesMiddleware,
)
...
app = FastAPI()
...
# set desired logging level
logging.getLogger("fastapi-middleware").setLevel(logging.DEBUG)
# add desired middleware
app.add_middleware(SQLQueriesMiddleware)
app.add_middleware(GlobalContextMiddleware)
@app.get("/test")
def get_test():
global_ctx.foo = 'bar'
return {'ok': True}
```
`GlobalContextMiddleware` gives you a global context object (`global_ctx`) to store data during the lifetime of the request. You can add request-specific data, for example, in other middleware and use it across application.
`SQLQueriesMiddleware` would log insights about SQL queries made with SQLAlchemy like total number of queries, total duration, slowest/fastest queries, etc.
Raw data
{
"_id": null,
"home_page": "https://github.com/Kholodnyi/fastapi-middleware",
"name": "fastapi-middleware",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Yurii Kholodnyi",
"author_email": "yurii.kholodnyi@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f7/4b/77fbca363e6900256e424915e5167f679e73f51d93b12786d949d618842c/fastapi_middleware-0.2.0.tar.gz",
"platform": null,
"description": "# [FastAPI](https://fastapi.tiangolo.com/) middleware\n\n## Introduction\n\n`fastapi-middleware` is a set of middlewares for [FastAPI](https://fastapi.tiangolo.com/) framework.\n## Installation\n\n```shell\npip install fastapi-middleware\n```\n\n## Usage\n\nTo use middleware, you need to import it and add to your FastAPI app:\n\n```python\nfrom fastapi import FastAPI\n\n...\n\nfrom fastapi_middleware import (\n GlobalContextMiddleware,\n global_ctx,\n SQLQueriesMiddleware,\n)\n\n...\n\napp = FastAPI()\n\n...\n\n# set desired logging level\nlogging.getLogger(\"fastapi-middleware\").setLevel(logging.DEBUG)\n\n# add desired middleware\napp.add_middleware(SQLQueriesMiddleware)\napp.add_middleware(GlobalContextMiddleware)\n\n\n@app.get(\"/test\")\ndef get_test():\n global_ctx.foo = 'bar'\n return {'ok': True}\n```\n\n`GlobalContextMiddleware` gives you a global context object (`global_ctx`) to store data during the lifetime of the request. You can add request-specific data, for example, in other middleware and use it across application.\n\n`SQLQueriesMiddleware` would log insights about SQL queries made with SQLAlchemy like total number of queries, total duration, slowest/fastest queries, etc.\n",
"bugtrack_url": null,
"license": null,
"summary": "Middleware for FastAPI",
"version": "0.2.0",
"project_urls": {
"Bug Tracker": "https://github.com/Kholodnyi/fastapi-middleware/issues",
"Homepage": "https://github.com/Kholodnyi/fastapi-middleware"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0ddd854aeeb9230f4b13845c2dc7f843087149591c79bc30f906216f088cf5b0",
"md5": "9cea3037c2bea8c36ba95918ea8f32e5",
"sha256": "dacce9c9ab913da574a07b32b5fc6f67fe9e07c493adc4c054102a8e12d9b843"
},
"downloads": -1,
"filename": "fastapi_middleware-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9cea3037c2bea8c36ba95918ea8f32e5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 5655,
"upload_time": "2024-09-11T06:49:13",
"upload_time_iso_8601": "2024-09-11T06:49:13.932586Z",
"url": "https://files.pythonhosted.org/packages/0d/dd/854aeeb9230f4b13845c2dc7f843087149591c79bc30f906216f088cf5b0/fastapi_middleware-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f74b77fbca363e6900256e424915e5167f679e73f51d93b12786d949d618842c",
"md5": "c2c017afe0460148230f28a57d47a3ff",
"sha256": "8f580723f167469c2abf29c432ebfa2df53ecedf701ecf20500c090c77f002d9"
},
"downloads": -1,
"filename": "fastapi_middleware-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "c2c017afe0460148230f28a57d47a3ff",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 4265,
"upload_time": "2024-09-11T06:49:15",
"upload_time_iso_8601": "2024-09-11T06:49:15.630579Z",
"url": "https://files.pythonhosted.org/packages/f7/4b/77fbca363e6900256e424915e5167f679e73f51d93b12786d949d618842c/fastapi_middleware-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-11 06:49:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Kholodnyi",
"github_project": "fastapi-middleware",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "fastapi-middleware"
}