{ "info": { "author": "Salsita Software", "author_email": "python@salsitasoft.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup" ], "description": "# [Flask-RAML](https://github.com/salsita/flask-raml) \n\nFlask-RAML (REST API Markup Language) API server with parameter conversion, response encoding, and examples.\n\n[![Version](https://badge.fury.io/gh/salsita%2Fflask-raml.svg)]\n(https://github.com/salsita/flask-raml/tags)\n[![PyPI package](https://badge.fury.io/py/Flask-RAML.svg)]\n(https://pypi.python.org/pypi/Flask-RAML/)\n[![Downloads](https://img.shields.io/pypi/dm/Flask-RAML.svg)]\n(https://pypi.python.org/pypi/Flask-RAML/)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/Flask-RAML.svg)]\n(https://pypi.python.org/pypi/Flask-RAML/)\n[![License](https://img.shields.io/pypi/l/Flask-RAML.svg)]\n(https://pypi.python.org/pypi/Flask-RAML/)\n\n\n## Supported Platforms\n\n* [Python](http://www.python.org/) >= 2.6, 3.3\n* [Flask](http://flask.pocoo.org/) >= 0.5\n\n\n## Get Started\n\nInstall using [pip](https://pip.pypa.io/) or [easy_install](http://pythonhosted.org/setuptools/easy_install.html):\n```bash\npip install Flask-RAML\neasy_install Flask-RAML\n```\n\nOptionally, you can specify `yaml` or `raml` extras to install related dependencies:\n```bash\npip install \"Flask-RAML[yaml,raml]\"\neasy_install \"Flask-RAML[yaml,raml]\"\n```\n\n\n## Features\n\n- Load [RAML](http://raml.org/) API specification stored in any of supported markup languages using [PyDataLoader](https://github.com/salsita/pydataloader).\n - Support [YAML](http://yaml.org/) using [PyYAML](http://pyyaml.org/wiki/PyYAML).\n - Support [RAML](http://raml.org/) using [pyraml-parser](https://github.com/an2deg/pyraml-parser).\n - 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).\n- Provide enhanced [PyRAML](https://github.com/salsita/pyraml) API model.\n - Reuse PyRAML extensible API spec loader and parameter converters.\n - Use extensible [flask-mime-encoders](https://github.com/salsita/flask-mime-encoders) for request/response body decoding/encoding.\n- Provide enhanced route decorator with optional API request/response middleware layers.\n - Auto-decode request body based on `Content-Type` header (for JSON, it reuses Flask auto-decoding).\n - Convert and validate URI/query parameters.\n - Auto-encode response with specified route encoders mimetype.\n- Make it simple to serve API example response of requested/default MIME type.\n - Make also simple to serve example responses for all unhandled API resources and methods.\n\n\n## Tasks\n\n- [ ] Release example API spec and Flask API server.\n - [x] Create repository [flask-raml-example](https://github.com/salsita/flask-raml-example).\n - [ ] Design a modular sample API spec with examples and reusable schemas, types, traits and markdown docs.\n - [x] Add gulp tasks to generate HTML docs and YAML spec from the sample RAML API specs.\n - [ ] Add gulp tasks for API testing using [abao](https://github.com/cybertk/abao/).\n - [ ] Add example app deployment from Github via API yaml/html build on CircleCI to uWSGI/Flask site on Heroku.\n - [ ] Extend [raml2html](https://github.com/kevinrenskers/raml2html) API docs generator.\n - [ ] Add parameter details (min/max lenght/value, pattern).\n - [ ] Add API console for testing.\n- [ ] Add autoselect encoder (based on request `Accept` header) to [flask-mime-encoders](https://github.com/salsita/flask-mime-encoders).\n- [ ] Add request body JSON schema validation.\n - [ ] Extend [raml-js-parser](https://github.com/raml-org/raml-js-parser) to embed local JSON schema references for validation.\n - [ ] Optionally extend [pyraml-parser](https://github.com/an2deg/pyraml-parser) too.\n - [ ] Add optional request body JSON schema validation to the route decorator.\n\n## Changelog\n\n### 0.2.2\n\n#### Features\n\n- Create encoded response for default http exceptions.\n- Add error logging.\n\n### 0.2.1\n\n#### Fixes\n\n- Fix HTTPException handling.\n- Add general Exception logging.\n\n### 0.2.0\n\n#### Features\n\n- Add custom logger name support.\n- Add view decorator support.\n- Return default http 500 error on any exception.\n- Add authorization support.\n\n#### Fixes\n\n- Update dependencies to support Python 3.\n- Fix package setup on Python 3.\n\n### 0.1.7\n\n#### Fixes\n\n- Fix logging http status passed as string.\n- Fix Python 2.6 support with updated PyRAML 0.1.9.\n\n### 0.1.6\n\n#### Features\n\n- Allow custom route request/response decoders/encoders.\n- Allow abort without response body.\n- Enhance logging.\n\n### 0.1.5\n\n#### Fixes\n\n- Fix broken example view function attributes.\n- Fix broken mime encoders import.\n\n### 0.1.4\n\n#### Fixes\n\n- Fix PEP-8 style and method spec in view serving decorator.\n\n### 0.1.3\n\n#### Features\n\n- Update PyRAML dependency to add default option to ignore empty parameters unless '' is specified in enum.\n\n### 0.1.2\n\n#### Fixes\n\n- Fix package setup to not require dependencies preinstalled.\n\n### 0.1.0\n\n#### Features\n\n- Initial release.\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/salsita/flask-raml/tarball/v0.2.2", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/salsita/flask-raml", "keywords": "Flask,RAML,REST,API", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "Flask-RAML", "package_url": "https://pypi.org/project/Flask-RAML/", "platform": "any", "project_url": "https://pypi.org/project/Flask-RAML/", "project_urls": { "Download": "https://github.com/salsita/flask-raml/tarball/v0.2.2", "Homepage": "https://github.com/salsita/flask-raml" }, "release_url": "https://pypi.org/project/Flask-RAML/0.2.2/", "requires_dist": null, "requires_python": null, "summary": "Flask-RAML (REST API Markup Language) API server with parameter conversion, response encoding, and examples", "version": "0.2.2" }, "last_serial": 1647877, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "eb605dfb8734b28fe6ab6f3b7f414c4e", "sha256": "886155d7b3838df1dd8e79e2b89e23872ef43cb0c96b3ec719def6e7b292bb50" }, "downloads": -1, "filename": "Flask-RAML-0.1.0.zip", "has_sig": false, "md5_digest": "eb605dfb8734b28fe6ab6f3b7f414c4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6905, "upload_time": "2015-02-26T12:43:38", "url": "https://files.pythonhosted.org/packages/19/4d/abe7f01f3c04bf5abeeb084e73dd15f6f5db1dca8c59853d7932739e460e/Flask-RAML-0.1.0.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "e3c77754641143f6ca63fc197eae4e56", "sha256": "7f782906d1b568217cdd341bbad06a0155f5c6e7d7b1e63bb8cebc6423b3ad8f" }, "downloads": -1, "filename": "Flask-RAML-0.1.1.zip", "has_sig": false, "md5_digest": "e3c77754641143f6ca63fc197eae4e56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6973, "upload_time": "2015-02-27T10:14:33", "url": "https://files.pythonhosted.org/packages/5b/66/abe45a20dc1ab5245c72a0574f81a66cccf2876cebf1105f9ddd35f68563/Flask-RAML-0.1.1.zip" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1086ab9a587d27a4771992c31ad9a70c", "sha256": "80900947ca168b0b1e7f89e3d5621501a35e2ba0dbaea5423421a4d15e6b146a" }, "downloads": -1, "filename": "Flask-RAML-0.1.2.zip", "has_sig": false, "md5_digest": "1086ab9a587d27a4771992c31ad9a70c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6988, "upload_time": "2015-02-27T13:20:40", "url": "https://files.pythonhosted.org/packages/9b/c4/993b4807cf1eeaba188f3f3d715063bd6ef33722af6a54982903f91ef7a6/Flask-RAML-0.1.2.zip" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "317c31b656bcd68bfb4d596467eb2ee3", "sha256": "887a751e070b1472b25af841a407dee64b8f888af5bd0d54a4f16878e3e2fb03" }, "downloads": -1, "filename": "Flask-RAML-0.1.3.zip", "has_sig": false, "md5_digest": "317c31b656bcd68bfb4d596467eb2ee3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6991, "upload_time": "2015-02-27T16:05:48", "url": "https://files.pythonhosted.org/packages/b9/47/e0361464f5a9d2c635e882578c2be9f50080867c0328d5b4cdd98da40bed/Flask-RAML-0.1.3.zip" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "26375e61b6f0824f4ad2e9c93a8315c2", "sha256": "79ca266ed6a6d14f99c95aadb58642f4d153daf1303bb7838b5ea7b3b61de4f4" }, "downloads": -1, "filename": "Flask-RAML-0.1.4.zip", "has_sig": false, "md5_digest": "26375e61b6f0824f4ad2e9c93a8315c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8730, "upload_time": "2015-03-27T10:18:44", "url": "https://files.pythonhosted.org/packages/bc/dc/610bf49e2c398f05e34b41e65e4f37b99cab9fb650dd86ac6e37701c6bb6/Flask-RAML-0.1.4.zip" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "14552b9cf6fb750fd1aa7011f9c70164", "sha256": "743ae14a8aebae4daf51938cf4fffb88d0d9ffd87be775979505b5e866d904a5" }, "downloads": -1, "filename": "Flask-RAML-0.1.5.zip", "has_sig": false, "md5_digest": "14552b9cf6fb750fd1aa7011f9c70164", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8776, "upload_time": "2015-03-27T14:31:06", "url": "https://files.pythonhosted.org/packages/cd/d2/436b253b52c12de3537aabd5ebbbc2e703cafb122c51fedaf4253965033c/Flask-RAML-0.1.5.zip" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "9a92811eb96826a09f22a04ab7ee30e7", "sha256": "c75d8bdd5179250da425d0528eb8a597b7ede1456a3950d983fb6808509ec1f4" }, "downloads": -1, "filename": "Flask-RAML-0.1.6.zip", "has_sig": false, "md5_digest": "9a92811eb96826a09f22a04ab7ee30e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8933, "upload_time": "2015-05-20T17:09:20", "url": "https://files.pythonhosted.org/packages/8d/b7/2ca428f0ab5ae57c0b54b058e3a9d2b3c4348f389a04e79cd0f528ebd9ff/Flask-RAML-0.1.6.zip" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "5415191b65ff72785a21f9c9512c88c6", "sha256": "38dafad22c5c79fe109af6faeaf8a876c8b57283982882201ebda5db574cee35" }, "downloads": -1, "filename": "Flask-RAML-0.1.7.zip", "has_sig": false, "md5_digest": "5415191b65ff72785a21f9c9512c88c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8973, "upload_time": "2015-05-28T10:54:47", "url": "https://files.pythonhosted.org/packages/bd/9d/1322c7e16aa3ec9f8b89fab7b47a4bd974241ed7536318c9cb721cc097bf/Flask-RAML-0.1.7.zip" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2a9f4aa8d55d2d1dfd399885d932ce3c", "sha256": "2e8ea3ecf26a71af483fbd505d61c2499a71cb3d5a66d7dbb0ba5c6955736971" }, "downloads": -1, "filename": "Flask-RAML-0.2.0.zip", "has_sig": false, "md5_digest": "2a9f4aa8d55d2d1dfd399885d932ce3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9273, "upload_time": "2015-06-18T10:39:54", "url": "https://files.pythonhosted.org/packages/4b/33/a240ea13c9095908c3e093194704bd3687bc02706a19fe9fce29d1320758/Flask-RAML-0.2.0.zip" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "95bf55497ca18a0e4414f2b27bee6b2c", "sha256": "80396f71b8a5979daa01c83433260f57794827cfe58fdee504222087ae9f81ba" }, "downloads": -1, "filename": "Flask-RAML-0.2.1.zip", "has_sig": false, "md5_digest": "95bf55497ca18a0e4414f2b27bee6b2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9349, "upload_time": "2015-06-26T12:20:00", "url": "https://files.pythonhosted.org/packages/2a/ee/9a20bd4dad7db48c6f00a80d5546da8f5127427af6a1f989e4f0fad1cdde/Flask-RAML-0.2.1.zip" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "cf89fe9fd37a02e17231bbc8bb35bd03", "sha256": "639391ffce1cf09760af76684bcce186efc51d705b0700c5852aa725b79c4a61" }, "downloads": -1, "filename": "Flask-RAML-0.2.2.zip", "has_sig": false, "md5_digest": "cf89fe9fd37a02e17231bbc8bb35bd03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9636, "upload_time": "2015-07-24T10:59:45", "url": "https://files.pythonhosted.org/packages/84/86/0441abd0a7c7cfd2ada807743e75dd7bea6307a11bf30b8bdecb82a58458/Flask-RAML-0.2.2.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cf89fe9fd37a02e17231bbc8bb35bd03", "sha256": "639391ffce1cf09760af76684bcce186efc51d705b0700c5852aa725b79c4a61" }, "downloads": -1, "filename": "Flask-RAML-0.2.2.zip", "has_sig": false, "md5_digest": "cf89fe9fd37a02e17231bbc8bb35bd03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9636, "upload_time": "2015-07-24T10:59:45", "url": "https://files.pythonhosted.org/packages/84/86/0441abd0a7c7cfd2ada807743e75dd7bea6307a11bf30b8bdecb82a58458/Flask-RAML-0.2.2.zip" } ] }