Metadata-Version: 2.1
Name: autogenerated-api
Version: 1.1.2
Summary: Get Autogenerated Serializers and APi End Points
Home-page: https://github.com/djangoconfire/autogenerated_api.git
Author: RituRaj
Author-email: ritu31195@gmail.com
License: GPLv3
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=2.7.15
Description-Content-Type: text/markdown
Requires-Dist: django (==1.8.14)
Requires-Dist: django-filter (==1.0.4)
Requires-Dist: djangorestframework (==3.4.2)
Requires-Dist: sets



# Autogenerated Api

Get Autogenerated Serializers and API EndPoints


## Installing autogenerated-api

autogenerated-api built for django.

PyPi, install using PIP:

```bash
pip install autogenerated_api
```

## Customizable Files in Apps

```pyhton
django_app architecture looks like
	- appp_name
		- __init__.py
		- models.py
		- serializers.py
		- filters.py
		- tests.py
		- views.py
```

### serilizers.py

```python
from models import ModelName
from autogenerated_api.serializers import DeadlySerializerFactory
ModelNameDeadlySerializer = DeadlySerializerFactory(modelName)
```

### filters.py

```python
from models import ModelName
from autogenerated_api.autogeneration import make_model_filter
ModelNameFilter = make_model_filter(ModelName)
```

## views.py

```python
import app_name.models
import app_name.serializers
import app_name.filters
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
from django.conf.urls import url,include
import app_name.views

from autogenerated_api import autogenerated_urls
urlpatterns = autogenerated_urls.urlpatterns

urlpatterns += []

```

## Adding to URLs

Add the Below `urls.py`

```python
urlpatterns = [
    url(r'^api/', include('project_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?

Usually , people have to create a serializers for each and every models of an app. In most of the cases , while creating a mdelserializer we have to write same amount of code.

To get the list out model instance , we have to write an api end points , line `ListAPiView` and for getting the detail of each record , we implement `DetailAPIView or RetrieveApiView`.

Now , we don't have to create these APi-end points and get worry about the serailizers . This module will take care of the rest.





