Flask-RAML (REST API Markup Language) API server with parameter conversion, response encoding, and examples.
[] (https://github.com/salsita/flask-raml/tags) [] (https://pypi.python.org/pypi/Flask-RAML/) [] (https://pypi.python.org/pypi/Flask-RAML/) [] (https://pypi.python.org/pypi/Flask-RAML/) [] (https://pypi.python.org/pypi/Flask-RAML/)
Install using pip or easy_install:
pip install Flask-RAML
easy_install Flask-RAML
Optionally, you can specify yaml
or raml
extras to install related dependencies:
pip install "Flask-RAML[yaml,raml]"
easy_install "Flask-RAML[yaml,raml]"
- Load RAML API specification stored in any of supported markup languages using PyDataLoader.
- Support YAML using PyYAML.
- Support RAML using pyraml-parser.
- Support JSON using Python 2.6+ json module, or Python 3.x json module.
- Provide enhanced PyRAML API model.
- Reuse PyRAML extensible API spec loader and parameter converters.
- Use extensible flask-mime-encoders for request/response body decoding/encoding.
- Provide enhanced route decorator with optional API request/response middleware layers.
- Auto-decode request body based on
Content-Type
header (for JSON, it reuses Flask auto-decoding). - Convert and validate URI/query parameters.
- Auto-encode response with specified route encoders mimetype.
- Auto-decode request body based on
- Make it simple to serve API example response of requested/default MIME type.
- Make also simple to serve example responses for all unhandled API resources and methods.
- Release example API spec and Flask API server.
- Create repository flask-raml-example.
- Design a modular sample API spec with examples and reusable schemas, types, traits and markdown docs.
- Add gulp tasks to generate HTML docs and YAML spec from the sample RAML API specs.
- Add gulp tasks for API testing using abao.
- Add example app deployment from Github via API yaml/html build on CircleCI to uWSGI/Flask site on Heroku.
- Extend raml2html API docs generator.
- Add parameter details (min/max lenght/value, pattern).
- Add API console for testing.
- Add autoselect encoder (based on request
Accept
header) to flask-mime-encoders. - Add request body JSON schema validation.
- Extend raml-js-parser to embed local JSON schema references for validation.
- Optionally extend pyraml-parser too.
- Add optional request body JSON schema validation to the route decorator.
- Create encoded response for default http exceptions.
- Add error logging.
- Fix HTTPException handling.
- Add general Exception logging.
- Add custom logger name support.
- Add view decorator support.
- Return default http 500 error on any exception.
- Add authorization support.
- Update dependencies to support Python 3.
- Fix package setup on Python 3.
- Fix logging http status passed as string.
- Fix Python 2.6 support with updated PyRAML 0.1.9.
- Allow custom route request/response decoders/encoders.
- Allow abort without response body.
- Enhance logging.
- Fix broken example view function attributes.
- Fix broken mime encoders import.
- Fix PEP-8 style and method spec in view serving decorator.
- Update PyRAML dependency to add default option to ignore empty parameters unless '' is specified in enum.
- Fix package setup to not require dependencies preinstalled.
- Initial release.