Damien Accorsi 4020691ac4 fixes titling | 7 years ago | |
---|---|---|
example | 7 years ago | |
hapic | 7 years ago | |
tests | 7 years ago | |
.coveragerc | 7 years ago | |
.coveralls.yml | 7 years ago | |
.editorconfig | 7 years ago | |
.gitignore | 7 years ago | |
.travis.yml | 7 years ago | |
README.md | 7 years ago | |
setup.py | 7 years ago |
Hapic is a framework-agnostic library for implementation of professionnal REST APIs.
Why you should use Hapic :
Hapic works with JSON, but it can be used for XML or virtually any data structure format.
Auto-generated documentation can be visualised with swagger.
Hapic as been developed by algoo in the context of a large client project. The lack of a tool allowing real auto-documentation of Rest API has decided us to develop Hapic.
Target projects of Hapic are not "quick and dirty" but professionnally architectured projects.
The separation of concerns between REST APIs layer and Business Stuff layer is in the DNA of Hapic. Hapic is just the HTTP Layer over your business code.
Hapic is licenced under the MIT licence. You can use it in your projects, closed or open sourced.
Hapic source code is ready for production. Some refactoring are identified and required for maintainability, but public APIs are stable so you can rely on Hapic for your developments.
Hapic is under active development, based on Algoo projects. We will answer your questions and accept merge requests if you find bugs or want to include functionnalities.
TODO can make reference to #X, this is github issues references.
virtualenv -p /usr/bin/python3 venv
source venv/bin/activate
python setup.py develop
In the example/usermanagement
directory you can find a complete example of an API allowing to manage users.
Features are:
In order to test it :
Install the required dependencies:
pip install bottle flask pyramid`
Run the instance you wan to test (one of the three following lines):
python example/usermanagement/serve_bottle.py
python example/usermanagement/serve_flask.py
python example/usermanagement/serve_pyramid.py
Features shown :