# FastAPI Toolkit
FastAPI Toolkit is a set of tools to enhance the development of applications with FastAPI. It includes middleware for logging, request rate limiting, and more.
## Installation
You can install the package using pip:
```bash
pip install zetta-backend-toolkit
```
### Logger Middleware
To use the logging middleware, simply add it to your FastAPI application:
```python
from fastapi import FastAPI
from zetta-backend-toolkit.logger_middleware import LoggerMiddleware
app = FastAPI()
app.add_middleware(LoggerMiddleware)
@app.get("/")
async def read_root():
return {"message": "Hello World"}
```
### Rate Limiting Middleware
To limit the number of requests per IP:
```python
from fastapi import FastAPI
from zetta-backend-toolkit.rate_limit_middleware import RateLimitMiddleware
app = FastAPI()
app.add_middleware(RateLimitMiddleware, max_requests=5, period=60)
@app.get("/")
async def read_root():
return {"message": "Hello World"}
```
### Translation Middleware
To translate requests and responses using googletrans:
```python
from fastapi import FastAPI, Request
from zetta-backend-toolkit.translation_middleware import TranslationMiddleware
app = FastAPI()
app.add_middleware(TranslationMiddleware, target_language="en")
@app.post("/translate")
async def translate_text(request: Request):
body = await request.body()
return {"translated_text": body.decode("utf-8")}
```
Project Information
Name: fastapi-toolkit
Version: 0.1.0
Author: Gonzalo Geraci
Author's Email: gonza.geraci@gmail.com
Description: A Backend toolkit for FastAPI
Project URL: https://github.com/gonzageraci/FastAPI-toolkit
Requires Python: >=3.10
Dependencies:
- fastapi
### Contribute
Contributions are welcome. Please open an issue or a pull request on the GitHub repository.
### License
This project is licensed under the MIT License. See the LICENSE file for more details.
Contact
Author: Gonzalo Geraci
Email: gonza.geraci@gmail.com
GitHub: https://www.github.com/gonzageraci
Raw data
{
"_id": null,
"home_page": "https://github.com/gonzageraci/Zetta-Backend-Toolkit",
"name": "zetta-backend-toolkit",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Gonzalo Geraci",
"author_email": "gonza.geraci@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/55/09/0ef322f4282fce11534b7d63d3c51b1a0e6741f0b4d876edbb01eb82382d/zetta-backend-toolkit-0.1.4.tar.gz",
"platform": null,
"description": "# FastAPI Toolkit \r\n\r\nFastAPI Toolkit is a set of tools to enhance the development of applications with FastAPI. It includes middleware for logging, request rate limiting, and more.\r\n\r\n## Installation\r\n\r\nYou can install the package using pip:\r\n\r\n \r\n\r\n```bash\r\n\r\npip install zetta-backend-toolkit\r\n\r\n```\r\n\r\n### Logger Middleware\r\n\r\nTo use the logging middleware, simply add it to your FastAPI application:\r\n\r\n \r\n\r\n```python\r\nfrom fastapi import FastAPI\r\nfrom zetta-backend-toolkit.logger_middleware import LoggerMiddleware\r\n\r\napp = FastAPI()\r\n\r\napp.add_middleware(LoggerMiddleware)\r\n\r\n@app.get(\"/\")\r\nasync def read_root():\r\n\treturn {\"message\": \"Hello World\"}\r\n\r\n```\r\n\r\n \r\n\r\n### Rate Limiting Middleware\r\n\r\nTo limit the number of requests per IP:\r\n\r\n \r\n\r\n```python\r\nfrom fastapi import FastAPI\r\nfrom zetta-backend-toolkit.rate_limit_middleware import RateLimitMiddleware\r\n\r\napp = FastAPI()\r\n\r\napp.add_middleware(RateLimitMiddleware, max_requests=5, period=60)\r\n\r\n@app.get(\"/\")\r\nasync def read_root():\r\n\treturn {\"message\": \"Hello World\"}\r\n\r\n```\r\n### Translation Middleware\r\n\r\nTo translate requests and responses using googletrans: \r\n```python\r\nfrom fastapi import FastAPI, Request\r\nfrom zetta-backend-toolkit.translation_middleware import TranslationMiddleware\r\n\r\napp = FastAPI()\r\n\r\napp.add_middleware(TranslationMiddleware, target_language=\"en\")\r\n\r\n@app.post(\"/translate\")\r\nasync def translate_text(request: Request):\r\n body = await request.body()\r\n return {\"translated_text\": body.decode(\"utf-8\")}\r\n```\r\n\r\nProject Information\r\n\r\nName: fastapi-toolkit\r\n\r\nVersion: 0.1.0\r\n\r\nAuthor: Gonzalo Geraci\r\n\r\nAuthor's Email: gonza.geraci@gmail.com\r\n\r\nDescription: A Backend toolkit for FastAPI\r\n\r\nProject URL: https://github.com/gonzageraci/FastAPI-toolkit\r\n\r\nRequires Python: >=3.10\r\n\r\nDependencies:\r\n\r\n- fastapi\r\n \r\n\r\n### Contribute\r\n\r\nContributions are welcome. Please open an issue or a pull request on the GitHub repository.\r\n\r\n \r\n\r\n### License\r\n\r\nThis project is licensed under the MIT License. See the LICENSE file for more details.\r\n\r\n \r\n\r\nContact\r\n\r\nAuthor: Gonzalo Geraci\r\n\r\nEmail: gonza.geraci@gmail.com\r\n\r\nGitHub: https://www.github.com/gonzageraci\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Un toolkit Backend para FastAPI",
"version": "0.1.4",
"project_urls": {
"Homepage": "https://github.com/gonzageraci/Zetta-Backend-Toolkit"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b4c4c7456b533f7b0171955806af5e4b1585800c9de32453cd80bc013a5f7e9f",
"md5": "8f1bcf0ceaa18d0eea957043e9bba528",
"sha256": "d2538696ac070299dabcb95fa64c7cf9dee3e1513c2376ddb43c35179004c482"
},
"downloads": -1,
"filename": "zetta_backend_toolkit-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f1bcf0ceaa18d0eea957043e9bba528",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 7639,
"upload_time": "2024-08-29T19:13:10",
"upload_time_iso_8601": "2024-08-29T19:13:10.888362Z",
"url": "https://files.pythonhosted.org/packages/b4/c4/c7456b533f7b0171955806af5e4b1585800c9de32453cd80bc013a5f7e9f/zetta_backend_toolkit-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "55090ef322f4282fce11534b7d63d3c51b1a0e6741f0b4d876edbb01eb82382d",
"md5": "8a0e5c8a665ab0fb75f6937709259a1d",
"sha256": "1ec269bf445486c76b2f1955f14e0e2842414fb81002ece757220e876cb0ad9b"
},
"downloads": -1,
"filename": "zetta-backend-toolkit-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "8a0e5c8a665ab0fb75f6937709259a1d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 6220,
"upload_time": "2024-08-29T19:13:12",
"upload_time_iso_8601": "2024-08-29T19:13:12.607277Z",
"url": "https://files.pythonhosted.org/packages/55/09/0ef322f4282fce11534b7d63d3c51b1a0e6741f0b4d876edbb01eb82382d/zetta-backend-toolkit-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-29 19:13:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "gonzageraci",
"github_project": "Zetta-Backend-Toolkit",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "zetta-backend-toolkit"
}