0 purchases
restframeworkfactory 0.2.1
Rest Framework Factory (DRFF)
A factory for creating Django Rest Framework APIs
Documentation: https://rest-framework-factory.readthedocs.io.
Features
Create a DRF API painlessly, without needing to repeat boilerplate code
Installation
pip install rest_framework_factory
Requirements
A Django project with at least one app’ from which you wish to build an DRF API included in INSTALLED_APPS, and with at least one model defined in models.py
How it Works
The Factory works because a model itself contains all the information required in order to generate an API for it, including a Serializer, a Viewset, URL(s) and other optional (e.g. Forms, Filters) content
Template files contain variable placeholders referencing the name and attributes of a model
TODOs
WEB UI interface to generate factory apis interactively
Configuration files (YML?) to allow fine-grained control of the factory API, e.g. by including/excluding individual models and/or fields, setting allowed methods, etc.
Swagger
Sphinx
Usage
Basic Usage - Manual Creation
It is not necessary to add rest_framework_factory to INSTALLED_APPS
One common use case is to build a factory using all the models defined in an app:
from rest_framework_factory import factory
drff = factory.Factory()
drff.build_from_app('my_app')
content = drff.apis['app']['my_app']
with open('/tmp/drff_api.py')), 'w') as f:
f.write(data)
Once the factory file is built, it should be placed into the apps’ folder, added to INSTALLED_APPS, and have its urls wired into the project:
mkdir my_app/drff; touch my_app/drff/__init__.py; cp /tmp/drff_api.py ./my_app/drff/api.py
settings.py:
INSTALLED_APPS += 'my_app.drff'
urls.py:
from my_app.drff.api import urlpatterns as drff_urls
urlpatterns += drff_urls
Using the Factory UI
TODO
Scan all the apps, the models therein, and their fields
Build forms for each model/app
Toggle desired models/fields on-off
Select serializer type (ie ModelSerializer vs ReadOnlyModelSerializer
Select allowed API endpoint methos (ie GET, POST)
Configuring the factory via YML
TODO
Initiallize: Scan all apps, the models therein, and their fields; write structure to file
Manually edit file, comment out undesired fields and models, change permissions, etc
Implement: Read yml file, generate factory
Credits
Django
Package created with Cookiecutter.
History
0.1.0 (2019-01-22)
First release on PyPI.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.