django rest framework discovery
1.0.0
Discoveryを使用すると、最小限の労力で既存のデータベースからAPIを作成できます。このプロジェクトは、Shabda RaajのBookrestに基づいています。また、Django RESTフレームワークの能力を活用して、フィルタリング、ページネーション、ドキュメンテーションの生成を適用することもできます。例は、 examplesディレクトリに記載されています。
データは、レガシーアプリケーションで常にアクセスできるとは限りません。新しいツールのレポートまたはプロトタイピングのためにデータにアクセスする必要がある状況にある可能性があります。 Legacyソフトウェアに新しい機能を追加することはコストがかかります。このソリューションは、この問題を検討することを目的としています。
スキーマ生成を成功させるには、テーブルに主要なキーが存在する必要があります。そうでなければ、それは静かに無視されます。
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' )),
]また、これを機能させるには、 settings.pyにDEFAULT_SCHEMA_CLASS明示的に含める必要があります。追加の詳細を参照してください。
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 :(オプション)無視したい表のリスト。