Overview¶
Source: | https://github.com/areski/a2billing-flask-api/ |
---|---|
Keywords: | a2billing, api, flask |
Flexible & Fast Restful APIs framework for A2Billing powered by Flask & Peewee. A2Billing-Flask-API comes with some tools for exposing your A2Billing models via a RESTful API.
Each RestFul APIs exposed supports the following:
/api/<model name>/ – GET and POST requests
/api/<model name>/<primary key>/ – GET, PUT and DELETE requests
Also, you can filter results by columns on the model. For example:
/api/cardgroup/?name=Some%20Blog
.._installation:
Installation¶
An install shell script is provided at https://github.com/areski/a2billing-flask-api/tree/master/install
The install script is intended to run on Debian 8.
Usage:
wget https://raw.githubusercontent.com/areski/a2billing-flask-api/master/install/install-a2b-flask-api.sh
bash install-a2b-flask-api.sh
Requirements¶
This Application is build using Flask and Peewee:
- Python 2.5 or greater
- Flask : http://flask.pocoo.org/
- Peewee : http://peewee.readthedocs.org/en/latest/
- Gunicorn : http://gunicorn.org/
- WTForms : http://wtforms.readthedocs.org/en/latest/
- MySQL-python : MySQL-python
- Flask-HTTPAuth : https://pypi.python.org/pypi/Flask-HTTPAuth
See the file requirements.txt for the full list of requirements.
.._admin-panel:
Admin Panel¶
An Admin Panel is provided which can be accessed at http://<ip_address>:8008/admin/
You will need an admin username and password to login, see the section below on how to create an admin user.
View resources:
Edit resources:
Stress Test¶
Use ab, the Apache HTTP server benchmarking tool
Usage:
ab -c 100 -n 1000 -p test/post.txt -T application/x-www-form-urlencoded http://localhost:8008/api/cardgroup/
Install & Deployment¶
There are many ways to deploy a Flask Application, we will describe the Apache Method here as this is the one more suitable for A2Billing users.
Reference: https://www.digitalocean.com/community/articles/how-to-deploy-a-flask-application-on-an-ubuntu-vps
Security¶
Edit a2billing_flaskapi.py and change the secret key and keep this really secret:
app.secret_key = 'ssshhhh-and-changeme-when-deploying'
Create an Admin User¶
We now have a functioning admin site, you can login with user / password: admin / admin
Change immediately the default password by a strong password!!!
You might want to create an other admin user from shell, to do so open up an interactive python shell in the directory alongside the app and run the following:
$ cd /usr/share/a2billing-flask-api/
$ workon a2billing-flask-api
$ python
Then in Python interpreter, type the following:
from a2billing_flask_api import auth
auth.User.create_table(fail_silently=True) # make sure table created.
admin = auth.User(username='admin', email='', admin=True, active=True)
admin.set_password('admin')
admin.save()
Documentation¶
Check out the documentation on ‘Read the Docs’: http://a2billing-flask-api.readthedocs.org/en/latest/index.html
Contributing¶
If you’ve found a bug, add a feature or improve the project and think it is useful then please consider contributing. Patches, pull requests or just suggestions are always welcome!
Source code: https://github.com/areski/a2billing-flask-api/
If you don’t like Github and Git you’re welcome to send regular patches.
Bug tracker: https://github.com/areski/a2billing-flask-api//issues
License¶
A2Billing-Flask-API is licensed under MPLv2.