The simplest way to have a rest api
Project description
py-easy-rest
It is a lib to create fast and scalable rest apis based on JSON schema in a very simple way. It is based on Sanic and it has built in extensions to add repositories and caches.
Getting Started
How to install
pip install py-easy-rest
Coding your app
It will use by default an in memory repository. It is not recommended to production applications. The next sections of this documentation will show you ways to integrate your application with Mongo DB and ways to use cache strategies. You can also create your own repositories and cache strategies to integrate your app with other technologies.
PYRSanicAppBuilder.build
returns a Sanic App, so you can use it to extend and build new things in your app.
#main.py
from sanic_ext import Extend
from py_easy_rest import PYRSanicAppBuilder
from py_easy_rest.service import PYRService
config = {
"name": "ProjectName",
"schemas": [{
"name": "Mock",
"slug": "mock",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
},
"required": ["name"],
}]
}
service = PYRService(config)
sanic_app = PYRSanicAppBuilder.build(config, service)
Extend(sanic_app)
sanic_app.run(
host='0.0.0.0',
port=8000,
debug=True,
)
Running it
python main.py
Now you can access http://localhost:8000/docs
to access your api documentation.
Integrating with Repositories
It is possible to add a repository to your application persist data into some data base. By default it will use a in memory repository, witch is not recommended to production environment.
To create your own repository, you just need to follow the Repo signature and pass it to the App:
service = PYRService(api_config_mock, repo=MyOwnRepo())
Repos ready to use
Integrating with Cache Strategies
It is possible to add a cache to your application. By default it will not use a cache, but you can choice a built in option or create your own cache.
To create your own cache, you just need to follow the Cache signature and pass it to the App:
service = PYRService(api_config_mock, cache=MyOwnCache())
Caches ready to use
API Description
py_easy_rest.PYRSanicAppBuilder.build()
Properties | Required | Default | Description |
---|---|---|---|
api_config | True | None | Object with project and schemas config |
service | True | PYRService() | Service use to handle the operations |
py_easy_rest.services.PYRService()
Properties | Required | Default | Description |
---|---|---|---|
api_config | True | None | Object with project and schemas config |
repo | False | PYRMemoryRepo() | Repository used as data resource |
cache | False | PYRDummyCache() | Cache strategy |
cache_list_seconds_ttl | False | 10 | TTL to cache the list results in seconds |
cache_get_seconds_ttl | False | 60 * 30 | TTL to cache the get results |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file py-easy-rest-0.4.7.tar.gz
.
File metadata
- Download URL: py-easy-rest-0.4.7.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2900acd0b7e3f3f9777adeef63ec0d17fe781a8ac3981614402a30af22090b7e |
|
MD5 | b4a90caa4ecaf753a62cf2a94a83201f |
|
BLAKE2b-256 | d4cd68cab0500f07cec9516e421b6f6ab660bee125f237298204c2e457c31289 |
File details
Details for the file py_easy_rest-0.4.7-py3-none-any.whl
.
File metadata
- Download URL: py_easy_rest-0.4.7-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a3427175f940aba83f9aafc9e87a3779db69ec07a6d039f73a6ff145b2e460b |
|
MD5 | 0910684f20d5b24be99ef832c0b5c50c |
|
BLAKE2b-256 | 89b92189543e04f4aa667b478f9b35960de431946e36cc72ec5e2c20a7a1886d |