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/)
## Supported Platforms
* [Python](http://www.python.org/) >= 2.6, 3.3
* [Flask](http://flask.pocoo.org/) >= 0.5
## Get Started
Install using [pip](https://pip.pypa.io/) or [easy_install](http://pythonhosted.org/setuptools/easy_install.html):
```bash
pip install Flask-RAML
easy_install Flask-RAML
```
Optionally, you can specify `yaml` or `raml` extras to install related dependencies:
```bash
pip install "Flask-RAML[yaml,raml]"
easy_install "Flask-RAML[yaml,raml]"
```
## Features
- Load [RAML](http://raml.org/) API specification stored in any of supported markup languages using [PyDataLoader](https://github.com/salsita/pydataloader).
- Support [YAML](http://yaml.org/) using [PyYAML](http://pyyaml.org/wiki/PyYAML).
- Support [RAML](http://raml.org/) using [pyraml-parser](https://github.com/an2deg/pyraml-parser).
- Support [JSON](http://json.org/) using [Python 2.6+ json module](https://docs.python.org/2/library/json.html), or [Python 3.x json module](https://docs.python.org/3/library/json.html).
- Provide enhanced [PyRAML](https://github.com/salsita/pyraml) API model.
- Reuse PyRAML extensible API spec loader and parameter converters.
- Use extensible [flask-mime-encoders](https://github.com/salsita/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.
- 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.
## Tasks
- [ ] Release example API spec and Flask API server.
- [x] Create repository [flask-raml-example](https://github.com/salsita/flask-raml-example).
- [ ] Design a modular sample API spec with examples and reusable schemas, types, traits and markdown docs.
- [x] Add gulp tasks to generate HTML docs and YAML spec from the sample RAML API specs.
- [ ] Add gulp tasks for API testing using [abao](https://github.com/cybertk/abao/).
- [ ] Add example app deployment from Github via API yaml/html build on CircleCI to uWSGI/Flask site on Heroku.
- [ ] Extend [raml2html](https://github.com/kevinrenskers/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](https://github.com/salsita/flask-mime-encoders).
- [ ] Add request body JSON schema validation.
- [ ] Extend [raml-js-parser](https://github.com/raml-org/raml-js-parser) to embed local JSON schema references for validation.
- [ ] Optionally extend [pyraml-parser](https://github.com/an2deg/pyraml-parser) too.
- [ ] Add optional request body JSON schema validation to the route decorator.
## Changelog
### 0.2.2
#### Features
- Create encoded response for default http exceptions.
- Add error logging.
### 0.2.1
#### Fixes
- Fix HTTPException handling.
- Add general Exception logging.
### 0.2.0
#### Features
- Add custom logger name support.
- Add view decorator support.
- Return default http 500 error on any exception.
- Add authorization support.
#### Fixes
- Update dependencies to support Python 3.
- Fix package setup on Python 3.
### 0.1.7
#### Fixes
- Fix logging http status passed as string.
- Fix Python 2.6 support with updated PyRAML 0.1.9.
### 0.1.6
#### Features
- Allow custom route request/response decoders/encoders.
- Allow abort without response body.
- Enhance logging.
### 0.1.5
#### Fixes
- Fix broken example view function attributes.
- Fix broken mime encoders import.
### 0.1.4
#### Fixes
- Fix PEP-8 style and method spec in view serving decorator.
### 0.1.3
#### Features
- Update PyRAML dependency to add default option to ignore empty parameters unless '' is specified in enum.
### 0.1.2
#### Fixes
- Fix package setup to not require dependencies preinstalled.
### 0.1.0
#### Features
- Initial release.
Metadata
Release files for Flask-RAML 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| Flask-RAML-0.2.2.zip | 9.6 kB | Without provenance | Details |
Release files / Flask-RAML-0.2.2.zip
| Download URL | Flask-RAML-0.2.2.zip |
|---|---|
| Size | 9.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
639391ffce1cf09760af76684bcce186efc51d705b0700c5852aa725b79c4a61
|
|
BLAKE2b-256 checksum How to use checksums |
84860441abd0a7c7cfd2ada807743e75dd7bea6307a11bf30b8bdecb82a58458
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for Flask-RAML 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.