Discovery le permite crear una API a partir de una base de datos existente con un esfuerzo mínimo. Este proyecto se basa en el bookrest de Shabda Raaj. También puede aprovechar las capacidades del marco de descanso Django para aplicar la generación de filtrado, paginación y documentación. Se pueden encontrar ejemplos en el directorio de examples .
Los datos no siempre son accesibles en aplicaciones heredadas. Es posible que esté en una situación en la que necesita acceso a los datos para informar o crear prototipos de nuevas herramientas. Agregar una nueva funcionalidad al software heredado puede ser costoso y esta solución tiene como objetivo trabajar en este problema.
Para una generación exitosa de esquema, debe tener una clave principal presente en la tabla. De lo contrario, será ignorado en silencio.
pip install djangorestframework-discovery En su settings.py :
INSTALLED_APPS = [
# ...
"rest_framework" ,
"rest_framework_discovery" ,
] Agregue una variable a su settings.py llamado DISCOVERY_ALIAS_NAME . Puede usar cualquier valor, pero se recomienda discovery . Usará eso para definir la base de datos que desea usar para la generación 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' ,
},
} Agregue los patrones generados al resto de su aplicación modificando las urls.py
urlpatterns = [
# ...
url ( r'^api/discovery/' , include ( 'rest_framework_discovery.urls' )),
] También deberá incluir DEFAULT_SCHEMA_CLASS explícitamente en settings.py para que esto funcione. Ver detalles adicionales ..
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS' : 'rest_framework.schemas.coreapi.AutoSchema'
} Puede ejecutar a través de la suite de prueba ejecutando runtests.py o tox .
Puede configurar lo siguiente en settings.py :
DISCOVERY_ALIAS_NAME : (requerido) El nombre de alias de la base de datos para usar con Discovery.DISCOVERY_READ_ONLY : (Opcional) True o False , ya sea que los vistas deben ser de solo lectura.DISCOVERY_INCLUDE : (opcional) Una lista de tablas que solo le gustaría incluir.DISCOVERY_EXCLUDE : (opcional) Una lista de tablas que le gustaría ignorar.