A factory for createing Django Rest Framework APIs
Project description
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
Package created with Cookiecutter.
History
0.1.0 (2019-01-22)
First release on PyPI.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file rest_framework_factory-0.2.1.tar.gz
.
File metadata
- Download URL: rest_framework_factory-0.2.1.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c31ef6a245fcc2f0b71b8551bd7f13976f620eb5a164c4059d4dc77a3bc4ed6 |
|
MD5 | 411db1e38dc256ce87f0cf8b8706a345 |
|
BLAKE2b-256 | 510f58dd35f6f3340db4cfe22b132751cfdb8299cc5575eaf5806b95d5946a2f |