Skip to main content

Cache for FastAPI

Project description

fastapi-cache

pypi license workflows workflows

Introduction

fastapi-cache is a tool to cache fastapi response and function result, with backends support redis and memcache.

Features

  • Support redis and memcache .
  • Easily integration with fastapi.
  • Support http cache like ETag and Cache-Control.

Requirements

  • asyncio environment.
  • redis if use RedisBackend.
  • memcache if use MemcacheBackend.

Install

> pip install fastapi-cache2[redis]

or

> pip install fastapi-cache2[memcache]

Usage

Quick Start

import aioredis
import uvicorn
from fastapi import FastAPI
from starlette.requests import Request
from starlette.responses import Response

from fastapi_cache import FastAPICache
from fastapi_cache.backends.redis import RedisBackend
from fastapi_cache.decorator import cache_response, cache

app = FastAPI()


@cache()
async def get_cache():
    return 1


@app.get("/")
@cache_response(expire=60)
async def index(request: Request, response: Response):
    return dict(hello="world")


@app.on_event("startup")
async def startup():
    redis = await aioredis.create_redis_pool("redis://localhost", encoding="utf8")
    FastAPICache.init(RedisBackend(redis), prefix="fastapi-cache")

Use cache_response

If you want cache fastapi response transparently, you can use cache_response as decorator between router decorator and view function and must pass request as param of view function.

And if you want use ETag and Cache-Control features, you must pass response param also.

Use cache

You can use cache as decorator like other cache tools to cache common function result.

License

This project is licensed under the Apache-2.0 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi-cache2-0.1.0.tar.gz (3.9 kB view hashes)

Uploaded Source

Built Distribution

fastapi_cache2-0.1.0-py3-none-any.whl (5.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page