flask-raml python

Flask-RAML (REST API Markup Language) API server with parameter conversion, response encoding, and examples.

2 years after

Flask-RAML

Flask-RAML (REST API Markup Language) API server with parameter conversion, response encoding, and examples.

[Version] (https://github.com/salsita/flask-raml/tags) [PyPI package] (https://pypi.python.org/pypi/Flask-RAML/) [Downloads] (https://pypi.python.org/pypi/Flask-RAML/) [Supported Python versions] (https://pypi.python.org/pypi/Flask-RAML/) [License] (https://pypi.python.org/pypi/Flask-RAML/)

Supported Platforms

Get Started

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]"

Features

  • Load RAML API specification stored in any of supported markup languages using PyDataLoader.
  • 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.
  • 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.
    • [ ] 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.
    • [ ] 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.

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.

Related Repositories

serverless

serverless

Serverless Framework – Build web, mobile and IoT applications with serverless ar ...

awesome-microservices

awesome-microservices

A curated list of Microservice Architecture related principles and technologies. ...

awesome-rest

awesome-rest

A collaborative list of great resources about RESTful API architecture, developm ...

awesome-pyramid

awesome-pyramid

A curated list of awesome Pyramid apps, projects and resources. ...

api-development-tools

api-development-tools

:books: A collection of useful resources for building RESTful HTTP+JSON APIs. ...


Top Contributors

iki

Releases

-   v0.2.2 zip tar
-   v0.2.1 zip tar
-   v0.2.0 zip tar
-   v0.1.6 zip tar
-   v0.1.5 zip tar
-   v0.1.4 zip tar
-   v0.1.3 zip tar
-   v0.1.2 zip tar
-   v0.1.1 zip tar
-   v0.1.0 zip tar