Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vincentsarago/lambda-proxy-cache

A lambda-proxy plugin to add a caching layer
https://github.com/vincentsarago/lambda-proxy-cache

Last synced: about 1 month ago
JSON representation

A lambda-proxy plugin to add a caching layer

Awesome Lists containing this project

README

        

# lambda-proxy-cache

[![Packaging status](https://badge.fury.io/py/lambda-proxy-cache.svg)](https://badge.fury.io/py/lambda-proxy-cache)
[![CircleCI](https://circleci.com/gh/vincentsarago/lambda-proxy-cache.svg?style=svg)](https://circleci.com/gh/vincentsarago/lambda-proxy-cache)
[![codecov](https://codecov.io/gh/vincentsarago/lambda-proxy-cache/branch/master/graph/badge.svg)](https://codecov.io/gh/vincentsarago/lambda-proxy-cache)

Add a caching layer to [lambda-proxy](https://github.com/vincentsarago/lambda-proxy)

## Install

```bash
$ pip install -U pip
$ pip install lambda-proxy-cache
```

Or install from source:

```bash
$ git clone https://github.com/vincentsarago/lambda-proxy-cache.git
$ cd lambda-proxy-cache
$ pip install -U pip
$ pip install -e .
```

# Usage

```python
from lambda_proxy_cache.proxy import API
from lambda_proxy_cache.backends.memcache import MemcachedCache

app = API(name="app", cache_layer=MemcachedCache("MyHostURL"))

@app.get('/user/')
def print_name(name):
# Do something here
...
return ('OK', 'plain/text', name)

# By adding `no_cache=True` we tell the proxy to not use the cache
@app.get('/user//id', no_cache=True)
def print_id(name):
# Do something here
...
return ('OK', 'plain/text', id)
```

# Contribution & Devellopement

Issues and pull requests are more than welcome.

**Dev install & Pull-Request**

```bash
$ git clone https://github.com/vincentsarago/lambda-proxy-cache.git
$ cd lambda-proxy-cache
$ pip install -e .[dev]
```

This repo is set to use pre-commit to run *flake8*, *pydocstring* and *black* ("uncompromising Python code formatter") when committing new code.

```bash
$ pre-commit install
$ git add .
$ git commit -m'my change'
black.........................Passed
Flake8........................Passed
Verifying PEP257 Compliance...Passed
$ git push origin
```