Metadata-Version: 2.1
Name: autogenerated_api
Version: 1.2.3
Summary: Get Autogenerated Serializers and APi End Points
Home-page: https://github.com/djangoconfire/autogenerated_api.git
Author: RituRaj
Author-email: djangopycon@gmail.com
License: GPLv3
Description: 
        
        # Autogenerated Api
        
        Get Autogenerated Serializers and API EndPoints
        
        ## Requirements
        ```
        - django
        - djangorestframework
        ```
        
        ```
        Tested with all Django versions from `1.8.x to 2.x.x`	
        ```
        
        ### Released with latest version of `Django`.
        
        ### Note
        ```
        For Django==1.8.x
        	- djangorestframework==3.4.2
        ```
        
        ## Installing autogenerated-api
        
        autogenerated-api built for django.
        
        ```bash
        pip install autogenerated_api
        ```
        
        ## Customizable Files in Apps
        
        ```pyhton
        django_app architecture looks like
        - appp_name
        	- __init__.py
        	- models.py
        	- serializers.py
        	- tests.py
        	- views.py
        ```
        
        ### serilizers.py
        
        ```python
        from .models import ModelName
        from autogenerated_api.serializers import DeadlySerializerFactory
        ModelNameDeadlySerializer = DeadlySerializerFactory(modelName)
        - DeadlySerializerFactory `Optional Paramaters`
        	- nest = ["field_1","field_2"] 
        	- nested_fields = {"field_name_in_releation" : ["related_model_field_1","related_model_field_2"]}
        	- exclude = ["field_1","field_2"] : fields that you want to exclude	
         
        ModelNameDeadlySerializer = DeadlySerializerFactory(modelName,nest,nested_fields,exclude)	
        ```
        
        ## views.py
        
        ```python
        import app_name.models
        import app_name.serializers
        from autogenerated_api.autogeneration import make_all_viewsets
        
        make_all_viewsets(__name__)
        ```
        
        ### Create a new file `api_urls.py` in main project folder.
        
        Main project folder Architecture
        ```python
        - main_proj_name
        	- __init__.py
        	- settings.py
        	- urls.py
        	- wsgi.py
        	- api_urls.py
        ```
        
        ### Add below codes in `api_urls.py` file.
        ```python
        import app_name.views
        from django.urls import path, re_path , include
        
        from autogenerated_api import autogenerated_urls
        urlpatterns = autogenerated_urls.urlpatterns
        
        urlpatterns += []
        
        ```
        
        ## Adding to URLs
        
        Add the Below `urls.py`
        
        ```python
        import django
        dj_version = django.get_version()
        
        from django.contrib import admin
        try:
            from django.urls import path, include , re_path
        except ImportError:
            from django.conf.urls import include, url
        
        try: 
            from django.core.urlresolvers import reverse 
        except ImportError: 
            from django.urls import reverse
        
        import re
        
        if re.search('^2[\d.]+',str(dj_version)):
            urlpatterns = [
                    re_path(r'^api/', include(('main_proj_name.api_urls', 'main_proj_name') , namespace="api")),
            ]
        else:
            urlpatterns = [
                url(r'^admin/', include(admin.site.urls)),
                url(r'^api/', include('main_proj_name.api_urls' , namespace="api")),
            ]
        ```
        
        ## Customizable Fields in Settings.
        
        ```python
        AUTOGENERATE_APPS = ["app_name"]
        ```
        
        ### Finally, you will get autogenerated seraializers and end points.
        
        ```
        - Autogenerated End Points
        	- `/api/model_name_in_lower/` :  list out all the model_instance
        	- `/api/model_name_in_lower/<instance_id>` : you will get detail of instance of given id  
        ```
        
        ## Why use autogenerated_api?
        
        Through `autogenerated_api` module , you can directly create serializers coresponding to each model and can also access the all fields value of model which are in relation `(m2m or foreignkey relationship)`.
        
        To get the list of  model instance , You  have to write an api end points , like `ListAPiView` and for getting the detail of model instance, have to implement  `DetailAPIView or RetrieveApiView` end points.
        
        Now , You don't have to create these APi-end points and get worry about the serailizers . This module will take care. Just , follow the steps that i mentioned above. 
        
        ### Coming
        	- Module with more functionality and more autogenerated end points.
        
        
        
        
        
        
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=2.7.15
Description-Content-Type: text/markdown
