{ "info": { "author": "Aly Sivji", "author_email": "alysivji@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# falcon-apispec\n\n[![Build Status](https://travis-ci.org/alysivji/falcon-apispec.svg?branch=master)](https://travis-ci.org/alysivji/falcon-apispec) [![codecov](https://codecov.io/gh/alysivji/falcon-apispec/branch/master/graph/badge.svg)](https://codecov.io/gh/alysivji/falcon-apispec) [![PyPI](https://img.shields.io/pypi/v/falcon-apispec.svg)](https://pypi.org/project/falcon-apispec/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[apispec](https://github.com/marshmallow-code/apispec) plugin that generates OpenAPI specification (aka Swagger) for [Falcon](https://falconframework.org/) web applications.\n\n## Installation\n\n```console\npip install falcon-apispec\n```\n\nWorks with `apispec v1.0+`.\n\n## Example Application\n\n```python\nfrom apispec import APISpec\nfrom apispec.ext.marshmallow import MarshmallowPlugin\nimport falcon\nfrom falcon_apispec import FalconPlugin\nfrom marshmallow import Schema, fields\n\n\n# Optional marshmallow support\nclass CategorySchema(Schema):\n id = fields.Int()\n name = fields.Str(required=True)\n\nclass PetSchema(Schema):\n category = fields.Nested(CategorySchema, many=True)\n name = fields.Str()\n\n\n# Create Falcon web app\napp = falcon.API()\n\nclass RandomPetResource:\n def on_get(self, req, resp):\n \"\"\"A cute furry animal endpoint.\n ---\n get:\n description: Get a random pet\n responses:\n 200:\n description: A pet to be returned\n schema: PetSchema\n \"\"\"\n pet = get_random_pet() # returns JSON\n resp.media = pet\n\n# create instance of resource\nrandom_pet_resource = RandomPetResource()\n# pass into `add_route` for Falcon\napp.add_route(\"/random\", random_pet_resource)\n\n\n# Create an APISpec\nspec = APISpec(\n title='Swagger Petstore',\n version='1.0.0',\n openapi_version='2.0',\n plugins=[\n FalconPlugin(app),\n MarshmallowPlugin(),\n ],\n)\n\n# Register entities and paths\nspec.components.schema('Category', schema=CategorySchema)\nspec.components.schema('Pet', schema=PetSchema)\n# pass created resource into `path` for APISpec\nspec.path(resource=random_pet_resource)\n```\n\n### Generated OpenAPI Spec\n\n```python\nspec.to_dict()\n# {\n# \"info\": {\n# \"title\": \"Swagger Petstore\",\n# \"version\": \"1.0.0\"\n# },\n# \"swagger\": \"2.0\",\n# \"paths\": {\n# \"/random\": {\n# \"get\": {\n# \"description\": \"A cute furry animal endpoint.\",\n# \"responses\": {\n# \"200\": {\n# \"schema\": {\n# \"$ref\": \"#/definitions/Pet\"\n# },\n# \"description\": \"A pet to be returned\"\n# }\n# },\n# }\n# }\n# },\n# \"definitions\": {\n# \"Pet\": {\n# \"properties\": {\n# \"category\": {\n# \"type\": \"array\",\n# \"items\": {\n# \"$ref\": \"#/definitions/Category\"\n# }\n# },\n# \"name\": {\n# \"type\": \"string\"\n# }\n# }\n# },\n# \"Category\": {\n# \"required\": [\n# \"name\"\n# ],\n# \"properties\": {\n# \"name\": {\n# \"type\": \"string\"\n# },\n# \"id\": {\n# \"type\": \"integer\",\n# \"format\": \"int32\"\n# }\n# }\n# }\n# },\n# }\n\nspec.to_yaml()\n# definitions:\n# Pet:\n# enum: [name, photoUrls]\n# properties:\n# id: {format: int64, type: integer}\n# name: {example: doggie, type: string}\n# info: {description: 'This is a sample Petstore server. You can find out more ', title: Swagger Petstore, version: 1.0.0}\n# parameters: {}\n# paths: {}\n# security:\n# - apiKey: []\n# swagger: '2.0'\n# tags: []\n```\n\n## Contributing\n\n### Setting Up for Local Development\n\n1. Fork falcon-apispec on Github\n2. Install development requirements. Virtual environments are highly recommended\n\n```console\npip install -r requirements.txt\n```\n\n### Running Tests\n\n```console\npytest\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alysivji/falcon-apispec", "keywords": "falcon apispec swagger openapi specification documentation spec rest api", "license": "", "maintainer": "", "maintainer_email": "", "name": "falcon-apispec", "package_url": "https://pypi.org/project/falcon-apispec/", "platform": "", "project_url": "https://pypi.org/project/falcon-apispec/", "project_urls": { "Funding": "https://falconframework.org/#sectionSupportFalconDevelopment", "Homepage": "https://github.com/alysivji/falcon-apispec", "Source": "https://github.com/alysivji/falcon-apispec", "Tracker": "https://github.com/alysivji/falcon-apispec/issues" }, "release_url": "https://pypi.org/project/falcon-apispec/0.3.0/", "requires_dist": [ "PyYAML (>=3.10)", "apispec (>=1.0)", "falcon" ], "requires_python": "", "summary": "Falcon plugin for apispec documentation generator.", "version": "0.3.0" }, "last_serial": 5528179, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1f18b482fc4346137e95c4c3efdd9547", "sha256": "dd0d7058004be00fb987d331e2e45b623deddd8588732700f0e422525b261f1b" }, "downloads": -1, "filename": "falcon_apispec-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1f18b482fc4346137e95c4c3efdd9547", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3927, "upload_time": "2018-07-30T17:15:39", "url": "https://files.pythonhosted.org/packages/e3/ed/1780c996fd090549700412b18e1ee5910cc6768a1912e9a5ea339cc60d61/falcon_apispec-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffc42ebcf42c86991cefa4b029adac4b", "sha256": "24f8bd6d1cbe86cc5ac7f7a7262476e1f40d59fab7213a64f5172dbcb034c9a3" }, "downloads": -1, "filename": "falcon-apispec-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ffc42ebcf42c86991cefa4b029adac4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4023, "upload_time": "2018-07-30T17:15:40", "url": "https://files.pythonhosted.org/packages/1f/a1/1750cb3a516f7453f89c9fd932d7d2677cdcf37ae38d337b797f53de4f10/falcon-apispec-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "fe250b6f1f1a408bd5546ae8d1ef6d23", "sha256": "b3a010bc6da289d813fe2f4f212beb65b33b72c387568ae5d7db07d93ce0be80" }, "downloads": -1, "filename": "falcon-apispec-0.2.0.tar.gz", "has_sig": false, "md5_digest": "fe250b6f1f1a408bd5546ae8d1ef6d23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4181, "upload_time": "2019-06-08T20:17:09", "url": "https://files.pythonhosted.org/packages/bb/c9/9c1f405c21f61fb3678f381947034de4bba6331b68411535c4f716200d64/falcon-apispec-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "65d73ded929f7311348002d3dd92f462", "sha256": "6e67b0200a5ed8c2960016d06a89384c5c50960cc6cef14ce4522965f7e6817e" }, "downloads": -1, "filename": "falcon_apispec-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "65d73ded929f7311348002d3dd92f462", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4866, "upload_time": "2019-07-13T23:14:25", "url": "https://files.pythonhosted.org/packages/c0/50/4edc0b39c2a44d9ad8e03596f4f0a682e9a1e6f9b9c47fa9f648b634c720/falcon_apispec-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17f9e0d9fe484e30e8836d7e758462e0", "sha256": "f69d2c4f8f4ae25fa1447aa6dea337e1c9d06cf2d4f700531b9ebac810dc907d" }, "downloads": -1, "filename": "falcon-apispec-0.3.0.tar.gz", "has_sig": false, "md5_digest": "17f9e0d9fe484e30e8836d7e758462e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4169, "upload_time": "2019-07-13T23:14:26", "url": "https://files.pythonhosted.org/packages/55/07/4a909a38939663ca180709525e5f28313789cc1e8a75d3ed8438ab36cd13/falcon-apispec-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "65d73ded929f7311348002d3dd92f462", "sha256": "6e67b0200a5ed8c2960016d06a89384c5c50960cc6cef14ce4522965f7e6817e" }, "downloads": -1, "filename": "falcon_apispec-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "65d73ded929f7311348002d3dd92f462", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4866, "upload_time": "2019-07-13T23:14:25", "url": "https://files.pythonhosted.org/packages/c0/50/4edc0b39c2a44d9ad8e03596f4f0a682e9a1e6f9b9c47fa9f648b634c720/falcon_apispec-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17f9e0d9fe484e30e8836d7e758462e0", "sha256": "f69d2c4f8f4ae25fa1447aa6dea337e1c9d06cf2d4f700531b9ebac810dc907d" }, "downloads": -1, "filename": "falcon-apispec-0.3.0.tar.gz", "has_sig": false, "md5_digest": "17f9e0d9fe484e30e8836d7e758462e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4169, "upload_time": "2019-07-13T23:14:26", "url": "https://files.pythonhosted.org/packages/55/07/4a909a38939663ca180709525e5f28313789cc1e8a75d3ed8438ab36cd13/falcon-apispec-0.3.0.tar.gz" } ] }