{ "info": { "author": "VenueBook", "author_email": "dev@venuebook.com", "bugtrack_url": null, "classifiers": [], "description": "## Mapped API ##\n\n[![Build Status](https://travis-ci.org/venuebook/mappedapi.svg?branch=master)](https://travis-ci.com/venuebook/mappedapi)\n\nA python library for an easily mapped RESTful API.\n\n**Installation:**\n\n(unless performing a system wide install, it's recommended to install inside of a virtualenv)\n\n```bash\n# Install dependencies:\npip install -r requirements.txt # Install core & tests\npip install -r requirements/core.txt # Just install core dependencies\npip install -r requirements/tests.txt # Install test dependencies\n\n# Install mappedapi\npython setup.py install\n```\n\n**Usage:**\n\n```python\n## example/__init__.py\n\n## example/mapping.py\nRESOURCE_MAPPING = {\n 'dogs': {\n {'shibes':\n 'get': {\n # https://www.example.com/api/3/dogs/{dog_id}/shibes\n 'endpoint_base': ['dogs', 'shibes'],\n 'endpoint_ids': ['dog_id'],\n 'verb': 'get',\n },\n 'post': {\n # https://www.example.com/api/3/dogs/{dog_id}/shibes\n 'endpoint_base': ['dogs', 'shibes'],\n 'endpoint_ids': ['dog_id'],\n 'required_args': ['name'],\n 'verb': 'post',\n },\n },\n },\n}\n\n## example/client.py\nimport mappedapi.base\nfrom example import mapping\nfrom example.api import APIResource\n\nclass Client(object):\n RESOURCE_CLASS = APIResource\n RESOURCE_MAPPING = mapping.RESOURCE_MAPPING\n\n def __init__(self, access_token):\n super(Client, self).__init__()\n self.auth = {'token': access_token}\n\n## example/settings.py\nAPI_BASE_URL = 'https://www.example.com/api/'\nAPI_VERSION = '3'\n\n## example/api.py\nimport mappedapi.base\nfrom example import settings\n\nclass APIResource(mappedapi.base.APIResourceItem):\n \"\"\"Item in a APIResource - Either a nested resource or an action.\"\"\"\n\n def _get_base_url(self):\n return '%s/%s' % (settings.API_BASE_URL, settings.API_VERSION)\n\n def _get_headers(self):\n return {\n 'Authorization': 'Bearer %s' % self.auth['token'],\n }\n\n def _process_call_arguments(self, kwargs):\n if 'operations' in kwargs:\n data = []\n for operation in kwargs['operations']:\n data.append({'operation': operation[0], 'property': operation[1], 'value': operation[2]})\n kwargs['data'] = data\n return kwargs\n\n## run.py\n\nimport uuid\nfrom example.client import Client\n\n# Initialize the client.\nclient = Client(YOUR_ACCESS_TOKEN)\n\nprint(client.dogs.shibes.get(dog_id='10203').json())\n\nclient.dogs.shibes.post(dog_id='10203', data={'name':'Doctor Wow'})\n```\n\n**Tests:**\n\n```\npy.test mappedapi --cov=mappedapi\n```\n\n**Dependencies:**\n\nCore library depends on ``requests``.\n\nTests depend on ``pytest, pytest-cov, responses``.\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/venuebook/mappedapi", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "MappedAPI", "package_url": "https://pypi.org/project/MappedAPI/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/MappedAPI/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/venuebook/mappedapi" }, "release_url": "https://pypi.org/project/MappedAPI/1.0.0/", "requires_dist": null, "requires_python": null, "summary": "Python library for Mappable RESTful API", "version": "1.0.0" }, "last_serial": 2499499, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "7a92ff45e2d271af2ea733376793bff9", "sha256": "32f585ec233d37ffc473ed16216926a91321dc0ffb19507c0f474a7768a7ce1f" }, "downloads": -1, "filename": "MappedAPI-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7a92ff45e2d271af2ea733376793bff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5192, "upload_time": "2016-12-05T03:28:22", "url": "https://files.pythonhosted.org/packages/8d/78/f12b4d4ea2655f7ef2bf90ba0ff7e1ded6580cebcd2f30694f5acd9898c2/MappedAPI-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7a92ff45e2d271af2ea733376793bff9", "sha256": "32f585ec233d37ffc473ed16216926a91321dc0ffb19507c0f474a7768a7ce1f" }, "downloads": -1, "filename": "MappedAPI-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7a92ff45e2d271af2ea733376793bff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5192, "upload_time": "2016-12-05T03:28:22", "url": "https://files.pythonhosted.org/packages/8d/78/f12b4d4ea2655f7ef2bf90ba0ff7e1ded6580cebcd2f30694f5acd9898c2/MappedAPI-1.0.0.tar.gz" } ] }