2017-03-16 1 views
0

DjangoRestFramework 3.3.2를 내 장고 응용 프로그램의 라우팅에 사용하고 있습니다. 나는 6 개의 응용 프로그램과 1 개의 주요 프로젝트 응용 프로그램을위한 6 개의 다른 폴더를 가지고 있습니다. 메인 URL 파일에 6 개의 모든 앱 URL을 포함 시켰습니다. 다음은 내 주요 URL 파일입니다.Django Rest 프레임 워크 숨기기 라우터 Api보기 페이지

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)는, 그것은 깊은 URL을 남겨 두어야 예를 들어 반환합니다 ($주의)의 URL'컴퓨팅/$'와 함께보기를 추가하는 시도 할 수 라우터 그대로. –

답변

0

settings.py DEBUG=False에서 REST API가 표시되지 않습니다.

+3

DEBUG가 이미 '거짓'으로 설정되었습니다. 나는 'DefaultRouter'를 'SimpleRouter'로 바꾸어서 그것을 수정했다. 이제 Api URL 계층 구조 대신 '404 오류'를 제공합니다. – Anshum17

1

귀하의 urls.py에서 기본 라우터를 단순 라우터로 변경하십시오.

router = routers.SimpleRouter() 

당신은 또한 API 만 가능 JSONRenderer로 제작 설정 파일에 다음 코드를 추가해야이 완전히 웹 검색 가능한 API를 사용할 수 없게됩니다.

REST_FRAMEWORK = { 
    'DEFAULT_RENDERER_CLASSES': (
     'rest_framework.renderers.JSONRenderer', 
    ) 
} 
관련 문제