{ "info": { "author": "Wang Haowei", "author_email": "hwwangwang@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "# flask-swagger-plus\nExtract swagger spec from source code (with `Form` and `Schema` components integrated).\n\n\nA Simple Example\n```python\nfrom flask import Flask, jsonify\nfrom flask.views import MethodView\nfrom flask_swagger_plus import Form, SwaggerResponse, StringField, form, swagger\nfrom marshmallow import Schema, fields\n\nclass ParamsForm(Form):\n email = StringField()\n name = StringField()\n\nclass AddressSchema(Schema):\n street = fields.Str()\n state = fields.Str()\n country = fields.Str()\n\nclass UserAPI(MethodView):\n\n @ParamsForm\n @SwaggerResponse(AddressSchema)\n def post(self):\n \"\"\"\n create a new user\n ---\n \"\"\"\n print(form.email)\n print(form.name)\n return {\n 'street': 'street',\n 'state': 'state',\n 'country': 'country'\n }\n\n\napp = Flask(__name__)\n\napp.add_url_rule('/users/', view_func=UserAPI.as_view('show_users'))\n\n\n@app.route('/swagger.json')\ndef spec():\n return jsonify(swagger(app))\n\nif __name__ == '__main__':\n app.run(debug=True)\n```\n\n**docstring** with _---_ is required as we can thus know if you want to export an api to swagger spec.\nIt's also available if you prefer to using decorator style router registry.\n```python\n@app.route('/post_user')\n@ParamsForm\n@SwaggerResponse(AddressSchema)\ndef post_user():\n \"\"\"\n create user\n ---\n \"\"\"\n return {}\n```\n\nThe json result from `/swagger.json` would like\n```\n{\n \"definitions\": {\n \"__main__post:AddressSchema\": {\n \"properties\": {\n \"country\": {\n \"type\": \"string\"\n },\n \"state\": {\n \"type\": \"string\"\n },\n \"street\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"info\": {\n \"title\": \"Cool product name\",\n \"version\": \"0.0.0\"\n },\n \"paths\": {\n \"/users/\": {\n \"post\": {\n \"description\": \"\",\n \"parameters\": [\n {\n \"description\": \"\",\n \"in\": \"formData\",\n \"name\": \"email\",\n \"type\": \"string\"\n },\n {\n \"description\": \"\",\n \"in\": \"formData\",\n \"name\": \"name\",\n \"type\": \"string\"\n }\n ],\n \"responses\": {\n \"200\": {\n \"description\": \"api result\",\n \"schema\": {\n \"$ref\": \"#/definitions/__main__post:AddressSchema\"\n }\n }\n },\n \"security\": [],\n \"summary\": \"create a new user\",\n \"tags\": [\n \"__main__\"\n ]\n }\n }\n },\n \"swagger\": \"2.0\"\n}\n```\n\nHope you enjoy it!\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/moonshadow/flask-swagger-plus/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flask-swagger-plus", "package_url": "https://pypi.org/project/flask-swagger-plus/", "platform": "", "project_url": "https://pypi.org/project/flask-swagger-plus/", "project_urls": { "Homepage": "http://github.com/moonshadow/flask-swagger-plus/" }, "release_url": "https://pypi.org/project/flask-swagger-plus/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "extract swagger spec from source code and docstring for a flask app", "version": "0.0.3" }, "last_serial": 2557465, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "55f6d3afac03354456edffda7e5a0df3", "sha256": "efbbc0092011742fb1abbb4501f98babfe43b4e4180793cf0790ba0035e9744f" }, "downloads": -1, "filename": "flask-swagger-plus-0.0.2.tar.gz", "has_sig": false, "md5_digest": "55f6d3afac03354456edffda7e5a0df3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8487, "upload_time": "2017-01-06T09:40:19", "url": "https://files.pythonhosted.org/packages/cc/da/2cb3dfe4633c7c61efdcd86816b4428bec6ba869ccbc591ef95970def665/flask-swagger-plus-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "8dd4da75d45a3b96e4054a163ffc988b", "sha256": "92737d543dd8b481964ba3871493f1c7cf8ca126bb3e1fcd99aa302fd09f809d" }, "downloads": -1, "filename": "flask-swagger-plus-0.0.3.tar.gz", "has_sig": false, "md5_digest": "8dd4da75d45a3b96e4054a163ffc988b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8394, "upload_time": "2017-01-06T09:44:49", "url": "https://files.pythonhosted.org/packages/74/29/43f85d3181680dc13fedba842a7e01d662b5e6cfd0d686d71bdd92af4bce/flask-swagger-plus-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8dd4da75d45a3b96e4054a163ffc988b", "sha256": "92737d543dd8b481964ba3871493f1c7cf8ca126bb3e1fcd99aa302fd09f809d" }, "downloads": -1, "filename": "flask-swagger-plus-0.0.3.tar.gz", "has_sig": false, "md5_digest": "8dd4da75d45a3b96e4054a163ffc988b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8394, "upload_time": "2017-01-06T09:44:49", "url": "https://files.pythonhosted.org/packages/74/29/43f85d3181680dc13fedba842a7e01d662b5e6cfd0d686d71bdd92af4bce/flask-swagger-plus-0.0.3.tar.gz" } ] }