{ "info": { "author": "Ashraful Islam", "author_email": "ashrafulrobin3@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "## Fast DRF(Django REST Framework) [Change Log](https://github.com/iashraful/fast-drf/blob/master/CHANGELOG.md)\n> Fast DRF is a small library for making API faster with Django and Django REST Framework.\nIt's easy and configurable.\n\n\n### Quick Start\n* Install the library inside your virtualenv by using pip `pip install fast-drf`\n* Add your apps to `FAST_API_ENABLED_APPS` on settings for best performance. Like, `FAST_API_ENABLED_APPS=['app_name', 'my_app']`\n* Update your every model or if you use base abstract model then it's good and less time you need. Update model like following,\n```python\nfrom fast_drf.mixins.expose_api_model_mixin import ExposeApiModelMixin\nfrom django.db import models\n\n\nclass MyModel(ExposeApiModelMixin, models.Model):\n #... All yor fields\n pass\n \n # The following methods are available from model mixin\n @classmethod\n def exposed_api(cls, *args, **kwargs):\n \"\"\"\n This method holds a bunch of API configs and return like following...\n {\n \"api_url\": \"\", # (REQUIRED)\n\n # You must use from HTTPVerbsEnum. Like HTTPVerbsEnum.GET.value, HTTPVerbsEnum.POST.value\n \"allowed_methods\": ['get', 'post', 'put', 'patch', 'delete'], # (NOT REQUIRED)\n\n # slug_field is application 'put', 'patch', 'delete' these methods\n \"slug_field\": \"pk\", # (NOT REQUIRED) DEFAULT [PK] (Must be model field, unique or primary key)\n\n \"queryset\": \"\", # (NOT REQUIRED) default all\n \"viewset_class\": \"\", # (NOT REQUIRED) BaseViewset class\n \"serializer_class\": \"\", # (NOT REQUIRED) default BaseEntitySerializer\n \"permission_classes\": \"\", # (NOT REQUIRED) default set from settings\n }\n :param args:\n :param kwargs:\n :return: An empty Dictionary/False OR Full config dictionary.\n \"\"\"\n api_configs = {\n \"api_url\": 'my-model-api',\n }\n return api_configs\n\n```\n\n#### Enable multiple API version\nTo achieve this awesomeness rewrite the following method in your model\n```python\n@classmethod\ndef api_version_fields(cls, **kwargs):\n \"\"\"\n *** DEFAULT VERSION `v1` ***\n\n This method will return a dictionary object with version number and fields name. Fields are similar like\n serializer fields. Or you can say exactly as same as serializer fields.\n :param kwargs: Currently nothing to receive on kwargs\n :return: a dictionary object with version number\n \"\"\"\n versions = {\n 'v1': ['id', 'name', 'custom_1', 'custom_2'],\n 'v2': ['id', 'name', 'something_else']\n }\n return versions\n```\n\n**That's it.** You can also override serializer class and viewset class", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://ashraful.dev", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "fast-drf", "package_url": "https://pypi.org/project/fast-drf/", "platform": "", "project_url": "https://pypi.org/project/fast-drf/", "project_urls": { "Homepage": "https://ashraful.dev" }, "release_url": "https://pypi.org/project/fast-drf/1.0.9/", "requires_dist": null, "requires_python": "", "summary": "A simple model based API configurator written in Python and based of Django and Django REST Framework", "version": "1.0.9" }, "last_serial": 5897099, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "81989bf5d1d9ff9ac32e548cfd1c9c33", "sha256": "058db1887cf2b19c735c642aeb08b596091d65d7233578d879efce145b5386e1" }, "downloads": -1, "filename": "fast-drf-0.0.1.tar.gz", "has_sig": false, "md5_digest": "81989bf5d1d9ff9ac32e548cfd1c9c33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3089, "upload_time": "2018-12-17T11:12:59", "url": "https://files.pythonhosted.org/packages/9b/1f/806287367770c333c51b23b6e00e57c097f70be644324557e579fc745ea8/fast-drf-0.0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c16d23d8c5ada288153c696aeb54a81d", "sha256": "047bb371d8c5f27cea6894dd1b332c88d9a9ff34d575c486b9df29a46f9532b6" }, "downloads": -1, "filename": "fast-drf-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c16d23d8c5ada288153c696aeb54a81d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4258, "upload_time": "2018-12-26T11:12:42", "url": "https://files.pythonhosted.org/packages/7f/bd/0a4e74c654ee521f54ea7ad689934bdfc00a7ebc5c922021a242f1508dfc/fast-drf-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "23ad32a36ffd54c06ca409228734ad9d", "sha256": "3b88e77dfd9750e2490c81c496e9597f4c5b26c1b468d8aba01513194907e065" }, "downloads": -1, "filename": "fast-drf-0.1.2.tar.gz", "has_sig": false, "md5_digest": "23ad32a36ffd54c06ca409228734ad9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4773, "upload_time": "2018-12-27T09:00:56", "url": "https://files.pythonhosted.org/packages/4b/e6/34fec45524f2ea6d585425041e81d0111ad4973b3b0f5bcd2fe3df61f537/fast-drf-0.1.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "c1f85d4264539d507a6759634a8dda65", "sha256": "da1aaf2fd1f59755236c1981114ac8b46f79494a5622d64a56a01e1f90820b09" }, "downloads": -1, "filename": "fast-drf-1.0.3.tar.gz", "has_sig": false, "md5_digest": "c1f85d4264539d507a6759634a8dda65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6134, "upload_time": "2019-01-03T18:59:38", "url": "https://files.pythonhosted.org/packages/a3/fb/257f8e0f3977ef6fed8ecadcf7e9bea996bd522886b48fdc6b8e83f62190/fast-drf-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "09de8e28a64869d5dbdbf5baba4e06ec", "sha256": "78a475fb47056c40d14180c626ac2f97977507ce65cef149f5c7b9e66038e4a6" }, "downloads": -1, "filename": "fast-drf-1.0.4.tar.gz", "has_sig": false, "md5_digest": "09de8e28a64869d5dbdbf5baba4e06ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6178, "upload_time": "2019-01-06T15:40:57", "url": "https://files.pythonhosted.org/packages/69/67/41145281c0f482a3ec8d2209c51532776a0988d40a356e3ea38d9125e2fb/fast-drf-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "49417887db7fdadb1595c15ecedf4b17", "sha256": "6af59dd7152c391c1dae756a6f40d55651ed8fc9f644f5dad241363e2bd420e9" }, "downloads": -1, "filename": "fast-drf-1.0.5.tar.gz", "has_sig": false, "md5_digest": "49417887db7fdadb1595c15ecedf4b17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6222, "upload_time": "2019-01-18T04:27:05", "url": "https://files.pythonhosted.org/packages/92/2b/6b5ea8d6303c9d2d9be0d591f6b486c53e1669da95a98ec1ba927c1fe563/fast-drf-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "96172db8d740516af056fa727c671db4", "sha256": "92bea9ea16306a582b15181365199db96775a9cd3dd83cb11ae7b4fce64946e6" }, "downloads": -1, "filename": "fast-drf-1.0.6.tar.gz", "has_sig": false, "md5_digest": "96172db8d740516af056fa727c671db4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6822, "upload_time": "2019-02-26T14:27:04", "url": "https://files.pythonhosted.org/packages/9d/d6/8255112b275007ca087b00b2ba09cf534a4e4a44b33e37f84e73d394b268/fast-drf-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "b2e2936087731c7203c276612238f988", "sha256": "50f14105e703ba8a4194c65205395a6c07bee4a770ed9cb1a872bea61be88c04" }, "downloads": -1, "filename": "fast-drf-1.0.7.tar.gz", "has_sig": false, "md5_digest": "b2e2936087731c7203c276612238f988", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6818, "upload_time": "2019-02-27T06:14:01", "url": "https://files.pythonhosted.org/packages/f5/6e/ba64e4b6adf7b3adc18685dcf94f763315233aa5d2a0c5515546987ec01a/fast-drf-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "602e761dc566b2503d29fb70700b360e", "sha256": "63b864330018f101eeb9d213772d07072a1d9476b272c48823891c5e611aaafd" }, "downloads": -1, "filename": "fast-drf-1.0.8.tar.gz", "has_sig": false, "md5_digest": "602e761dc566b2503d29fb70700b360e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8548, "upload_time": "2019-04-02T15:43:20", "url": "https://files.pythonhosted.org/packages/42/a5/fb344b47bd2295f3b31a896eeedb0e5103b682015c62422a34d127e76069/fast-drf-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "09f45aaf7d5992d53331980d3297d6ad", "sha256": "8e8327b2cffe22a8a4f2e5c1ea7a504fe9407957aa4cb9d8b4d4c146045b983e" }, "downloads": -1, "filename": "fast-drf-1.0.9.tar.gz", "has_sig": false, "md5_digest": "09f45aaf7d5992d53331980d3297d6ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7640, "upload_time": "2019-09-27T17:04:37", "url": "https://files.pythonhosted.org/packages/7d/ee/df70a4306f3a4dc9f075a8b7b249722849640725634e0474a507c284dbe1/fast-drf-1.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "09f45aaf7d5992d53331980d3297d6ad", "sha256": "8e8327b2cffe22a8a4f2e5c1ea7a504fe9407957aa4cb9d8b4d4c146045b983e" }, "downloads": -1, "filename": "fast-drf-1.0.9.tar.gz", "has_sig": false, "md5_digest": "09f45aaf7d5992d53331980d3297d6ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7640, "upload_time": "2019-09-27T17:04:37", "url": "https://files.pythonhosted.org/packages/7d/ee/df70a4306f3a4dc9f075a8b7b249722849640725634e0474a507c284dbe1/fast-drf-1.0.9.tar.gz" } ] }