Mit Discovery können Sie mit minimalem Aufwand eine API aus einer vorhandenen Datenbank erstellen. Dieses Projekt basiert auf Shabda Raajs Bookrest. Sie können auch die Kapazilien des Django -REST -Frameworks nutzen, um Filter-, Paginierung und Dokumentationsgenerierung anzuwenden. Beispiele finden Sie im examples .
Die Daten sind in Legacy -Anwendungen nicht immer zugänglich. Sie können sich in einer Situation befinden, in der Sie Zugriff auf die Daten zum Berichten oder Prototypen neuer Tools benötigen. Das Hinzufügen neuer Funktionen zu Legacy-Software kann kostengünstig sein, und diese Lösung zielt darauf ab, dieses Problem zu bearbeiten.
Für eine erfolgreiche Schemagenerierung müssen Sie einen Primärschlüssel in der Tabelle vorhanden haben. Andernfalls wird es stillschweigend ignoriert.
pip install djangorestframework-discovery In Ihren settings.py :
INSTALLED_APPS = [
# ...
"rest_framework" ,
"rest_framework_discovery" ,
] Fügen Sie Ihren settings.py eine Variable DISCOVERY_ALIAS_NAME . Sie können jeden Wert verwenden, aber discovery wird empfohlen. Sie werden dies verwenden, um die Datenbank zu definieren, die Sie für die Erzeugung der Viewset verwenden möchten.
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' ,
},
} Fügen Sie die erzeugten Muster dem Rest Ihrer Anwendung hinzu, indem Sie die urls.py ändern.
urlpatterns = [
# ...
url ( r'^api/discovery/' , include ( 'rest_framework_discovery.urls' )),
] Sie müssen auch DEFAULT_SCHEMA_CLASS explizit in settings.py einbeziehen, damit dies funktioniert. Siehe zusätzliche Details ..
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS' : 'rest_framework.schemas.coreapi.AutoSchema'
} Sie können die Testsuite durchführen, indem Sie runtests.py oder tox ausführen.
Sie können Folgendes in settings.py konfigurieren.Py:
DISCOVERY_ALIAS_NAME : (Erforderlich) Der Name der Datenbank -Alias soll mit der Erkennung verwendet werden.DISCOVERY_READ_ONLY : (optional) True oder False , ob die Ansichten schreibgeschützt sein oder nicht.DISCOVERY_INCLUDE : (optional) Eine Liste der Tabellen, die Sie nur einschließen möchten.DISCOVERY_EXCLUDE : (optional) Eine Liste der Tabellen, die Sie ignorieren möchten.