Metadata-Version: 1.1
Name: fast-drf
Version: 1.0.3
Summary: A simple model based API configurator written in Python and based of Django and Django REST Framework
Home-page: https://mrrobin.me
Author: Ashraful Islam
Author-email: ashrafulrobin3@gmail.com
License: MIT License
Description: ## Fast DRF(Django REST Framework)
        > Fast DRF is a small library for making API faster with Django and Django REST Framework.
        It's easy and configurable.
        
        
        ### Quick Start
        * Install the library inside your  virtualenv by using pip `pip install fast-drf`
        * Add your apps to `FAST_API_ENABLED_APPS` on settings for best performance. Like, `FAST_API_ENABLED_APPS=['app_name', 'my_app']`
        * Update your every model or if you use base abstract model then it's good and less time you need. Update model like following,
        ```python
        from fast_drf.mixins.expose_api_model_mixin import ExposeApiModelMixin
        from django.db import models
        
        
        class MyModel(ExposeApiModelMixin, models.Model):
            #... All yor fields
            pass
            
            # The following methods are available from model mixin
            @classmethod
            def exposed_api(cls, *args, **kwargs):
                """
                This method holds a bunch of API configs and return like following...
                {
                    "api_url": "",  # (REQUIRED)
        
                    # You must use from HTTPVerbsEnum. Like HTTPVerbsEnum.GET.value, HTTPVerbsEnum.POST.value
                    "allowed_methods": ['get', 'post', 'put', 'patch', 'delete'], # (NOT REQUIRED)
        
                    # slug_field is application 'put', 'patch', 'delete' these methods
                    "slug_field": "pk", # (NOT REQUIRED) DEFAULT [PK] (Must be model field, unique or primary key)
        
                    "queryset": "",  # (NOT REQUIRED) default all
                    "viewset_class": "",  # (NOT REQUIRED) BaseViewset class
                    "serializer_class": "",  # (NOT REQUIRED) default BaseEntitySerializer
                    "permission_classes": "",  # (NOT REQUIRED) default set from settings
                }
                :param args:
                :param kwargs:
                :return: An empty Dictionary/False OR Full config dictionary.
                """
                api_configs = {
                    "api_url": 'my-model-api',
                }
                return api_configs
        
        ```
        
        **That's it.** You can also override serializer class and viewset class
        
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
