2017-03-16 12 views
0

私はdjangoRestFramework 3.3.2を私のdjangoアプリケーションのルーティングに使用しています。私は6つのアプリケーションと1つのメインプロジェクトのアプリケーションのための6つの異なるフォルダがあります。私はメインのURLファイルに6つのアプリのURLをすべて含んでいます。以下は私のメインURLファイルです。Django Restフレームワークを非表示にするルータApi View Page

from django.conf.urls import include, url 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^vpc/', include('vpc.urls')), 
    url(r'^dss/', include('dss.urls')), 
    url(r'^rds/', include('rds.urls')), 
    url(r'^compute/', include('compute.urls')), 
    url(r'^iam/', include('iam.urls')), 
] 

これは私のアプリケーションのURLファイルです。

from django.conf.urls import url 
from rest_framework import routers 
import views.instance_views as instance 
import views.snapshot_views as snapshot 

router = routers.SimpleRouter() 
router.register(r'instance', instance.IntanceViewSet, base_name='instance') 
router.register(r'snapshot', snapshot.SnapshotViewSet, base_name='snapshot') 

urlpatterns = [] 

urlpatterns += router.urls 

私の問題は、ブラウザでURLを開くと、URLの階層全体が表示されます。これは必須ではない。 Snapshot of Api root view

これらのレンダリングビューを非表示にするにはどうすればよいですか。私は私が使用してビューを隠すことができた余分な情報

を表示したくない:

REST_FRAMEWORK = { 
    'DEFAULT_RENDERER_CLASSES': (
     'rest_framework.renderers.JSONRenderer', 
    ) 
} 

しかし、私はまだ1つのアプリの下にすべてのURLを取得しています。

{"instance":"http://127.0.0.1:8000/compute/instance/","keypair":"http://127.0.0.1:8000/compute/keypair/","volume":"http://127.0.0.1:8000/compute/volume/","image":"http://127.0.0.1:8000/compute/image/","snapshot":"http://127.0.0.1:8000/compute/snapshot/"} 
+0

設定でこれが何も表示されませんでしたが、たとえば '401 'を返すために' compute/$ '($に注意してください)というURLを持つビューを追加すると、ルータはそのままです。 –

答えて

0

settings.py DEBUG=Falseでは、REST APIは表示されません。

+3

DEBUGはすでに「False」に設定されていました。私は 'DefaultRouter'を 'SimpleRouter'に置き換えて修正しました。今はApiのURL階層の代わりに '404エラー'を出すだけです。 – Anshum17

1

あなたのurls.pyでは、デフォルトルータをシンプルルータに変更します。

router = routers.SimpleRouter() 

はまた、APIのためにのみ有効JSONRendererに本番設定ファイルに次のコードを追加する必要がありますこれは完全にウェブブラウズ可能なAPIを無効にします。

REST_FRAMEWORK = { 
    'DEFAULT_RENDERER_CLASSES': (
     'rest_framework.renderers.JSONRenderer', 
    ) 
} 
関連する問題