A simple back-end rest framework in python using aiohttp lib
Project description
Wellcome to apys! A simple backend restful framework!
LANGUAGE
LIBRARIES
aiohttp - http client/server for asyncio
INSTALATION
Install python 3
Windows - Link
Ubuntu - sudo apt-get install python
Fedora - sudo yum install python
Arch - sudo pacman -S python
Install PIP - Python libraries manager
Windows - Link
Ubuntu - sudo apt-get install pip
Fedora - sudo yum install pip
Arch - sudo pacman -S pip
Install this framework using PIP
pip install apys
INITIALIZATING PROJECT
$ apys --init
USING
DIRECTORIES
/config - json configuration files /endpoints - backend endpoints /utils - helper script files
CONFIG
Here are the configuration files used in the app. They will be send to the endpoint via param api.config
There are 3 special filenames: * prod.json - The oficial configuration file * dev.json - The development configuration file * local.json - The local configuration file (ignore in git)
Note: They really work as following: the api tries to load local.json, then dev.json, then prod.json. So in the oficial release you will only have prod.json
The current config special properties are the following:
{
"log": bool, //optional. default=False
"server": {
"port": int, //optional. default=8888
"cors": string or False //optional. default=False
},
"mail": {
"host": string,
"port": int, //optional. default=25 or 587 for TLS
"tls": bool, //optional. default=False
"username?": string, //optional. no default
"password?": string //optional. no default
}
}
ENDPOINTS
This will be your main dev dir
All files added here will be an endpoint automatically
i.e.: the file endpoints/hello/world.py will generate an endpoint /hello/world
The file’s code will be the following:
utils = [
'[util1]',
'[util2]'
]
def [method](req, api):
[process]
Where [method] is the http request type: * post * get * put * delete * head * options * default - executed when a request is made for any of the above, but it is not implemented
[process] is what you wan the endpoint to do (your code)
[util1] and [util2] are the utils scripts (without .py)
req is aiohttp’s request, documentation
req has the params property to read the request body
api is the object that contains all api functionalities: * config - Configuration dictionary used in the actual scope * debug - function to log messages * error - function to log errors
UTILS
Python files with reusable code, to be called on endpoints.
It will be a normal cod, but with some special funcions:
init(api)
The function that will be executed on server startup Only one time.
[method](req, api) - [method] being the type of http request
The function that will be called before every request to the function with the same name on the endpoint. Any result should be stored on the variable `req`, because it is the only local variable on the request.
any(req, api)
The function that will be executed before any request. Note: thids function will be executed before the later.
EXAMPLE
Look at the demos/ for examples
STARTING THE SERVER
There are 2 ways to start the server
Execute apys -s from terminal on your root project folder (Recomended)
Call the method start() from module apys.server (Only recomended if you need to do something before starting the server)
OBSERVATION
Both the framework and this page are in development, so, subjected to changes.
Version previous to v0.1.0 vas called pypolyback and used python 2.
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.