Discovery vous permet de créer une API à partir d'une base de données existante avec un minimum d'effort. Ce projet est basé sur le livre de Shabda Raaj. Vous pouvez également tirer parti des capabilties du framework Django REST pour appliquer le filtrage, la pagination et la génération de documentation. Des exemples peuvent être trouvés dans le répertoire examples .
Les données ne sont pas toujours accessibles dans les applications héritées. Vous pourriez être dans une situation où vous avez besoin d'accéder aux données de signalement ou de prototypage de nouveaux outils. L'ajout de nouvelles fonctionnalités aux logiciels hérités peut être prohibitif et cette solution vise à résoudre ce problème.
Pour une génération de schéma réussie, vous devez avoir une clé primaire présente dans le tableau. Sinon, il sera ignoré silencieusement.
pip install djangorestframework-discovery Dans vos settings.py :
INSTALLED_APPS = [
# ...
"rest_framework" ,
"rest_framework_discovery" ,
] Ajoutez une variable à vos settings.py nommé DISCOVERY_ALIAS_NAME . Vous pouvez utiliser n'importe quelle valeur, mais discovery est recommandée. Vous l'utiliserez pour définir la base de données que vous souhaitez utiliser pour la génération de Viewset.
DISCOVERY_ALIAS_NAME = 'discovery'
DATABASES = {
'default' : {
'ENGINE' : 'django.db.backends.sqlite3' ,
'NAME' : os . path . join ( BASE_DIR , 'db.sqlite3' ),
},
'discovery' : {
'NAME' : 'YOUR_DB_NAME' ,
'ENGINE' : 'django.db.backends.postgresql' ,
'USER' : 'YOUR_DB_USER' ,
'PASSWORD' : 'YOUR_DB_PASSWORD' ,
'HOST' : 'YOUR_DB_HOST' ,
'PORT' : 'YOUR_DB_PORT' ,
},
} Ajoutez les modèles générés au reste de votre application en modifiant les urls.py
urlpatterns = [
# ...
url ( r'^api/discovery/' , include ( 'rest_framework_discovery.urls' )),
] Vous devrez également inclure explicitement DEFAULT_SCHEMA_CLASS dans settings.py pour que cela fonctionne. Voir les détails supplémentaires.
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS' : 'rest_framework.schemas.coreapi.AutoSchema'
} Vous pouvez exécuter la suite de tests en exécutant runtests.py ou tox .
Vous pouvez configurer ce qui suit dans settings.py :
DISCOVERY_ALIAS_NAME : (requis) Le nom d'alias de la base de données à utiliser avec Discovery.DISCOVERY_READ_ONLY : (facultatif) True ou False , que les vues de vues soient en lecture seule.DISCOVERY_INCLUDE : (facultatif) Une liste de tableaux que vous souhaitez n'inclure que .DISCOVERY_EXCLUDE : (facultatif) Une liste de tableaux que vous souhaitez ignorer.