Discovery позволяет вам создавать API из существующей базы данных с минимальными усилиями. Этот проект основан на книге Шабда Рааджа. Вы также можете использовать возможности для основы Django REST для применения фильтрации, лиц и генерации документов. Примеры можно найти в каталоге examples .
Данные не всегда доступны в устаревших приложениях. Вы можете находиться в ситуации, когда вам нужен доступ к данным для отчетности или прототипа новых инструментов. Добавление новой функциональности в устаревшее программное обеспечение может быть чрезмерным затратом, и это решение направлено на то, чтобы разрабатывать эту проблему.
Для успешного генерации схемы вам необходимо иметь первичный ключ в таблице. В противном случае это будет молча игнорировать.
pip install djangorestframework-discovery В ваших settings.py :
INSTALLED_APPS = [
# ...
"rest_framework" ,
"rest_framework_discovery" ,
] Добавьте переменную в свои settings.py DISCOVERY_ALIAS_NAME Вы можете использовать любое значение, но discovery рекомендуется. Вы будете использовать это для определения базы данных, которую вы хотели бы использовать для генерации сетчатых счетов.
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' ,
},
} Добавьте сгенерированные шаблоны в остальную часть вашего приложения, изменяя urls.py
urlpatterns = [
# ...
url ( r'^api/discovery/' , include ( 'rest_framework_discovery.urls' )),
] Вам также нужно будет включить DEFAULT_SCHEMA_CLASS явно в settings.py . Смотрите дополнительную информацию ..
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS' : 'rest_framework.schemas.coreapi.AutoSchema'
} Вы можете запустить набор тестирования, используя runtests.py или tox .
Вы можете настроить следующее в settings.py :
DISCOVERY_ALIAS_NAME : (требуется) Имя псевдонима базы данных для использования с Discovery.DISCOVERY_READ_ONLY : (необязательно) True или False , независимо от того, должны ли просмотры быть только для чтения.DISCOVERY_INCLUDE : (необязательно) Список таблиц, которые вы хотели бы включить .DISCOVERY_EXCLUDE : (необязательно) Список таблиц, которые вы хотели бы игнорировать.