django - 隐藏 Django Rest Framework 路由器 Api 查看页面

标签 django django-rest-framework router

我在 django 应用程序中使用 DjangoRestFramework 3.3.2 进行路由。我有 6 个不同的文件夹,分别用于 6 个应用程序和 1 个主项目应用程序。我已将所有 6 个应用程序 url 包含到主 url 文件中。以下是我的主 url 文件。

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

现在我的问题是当我在浏览器中打开网址时,我可以看到整个网址层次结构。这不是必需的。 Snapshot of Api root view

如何隐藏这些渲染 View 。我不想显示任何额外的信息

我能够使用以下方法隐藏 View :

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

但我仍然获取 1 个应用程序下的所有网址。

{"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/"}

最佳答案

在 urls.py 中将默认路由器更改为简单路由器。

router = routers.SimpleRouter()

您还应该在生产设置文件中添加以下代码片段,以便仅为 API 启用 JSONRenderer,这将完全禁用可浏览 Web 的 API。

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

关于django - 隐藏 Django Rest Framework 路由器 Api 查看页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42829782/

相关文章:

Django REST Framework - 自定义权限未评估

python - 通过POST创建资源指定相关字段ID

postgresql - 在 OpenShift v3 上将 Postgresql 配置为服务

macos - 如何启用 syslogd 以从 OSX 中的路由器接收 UDP 日志

django-rest-framework - 如何对 UUID 进行编码以使其可 JSON 序列化

javascript - 为什么 react 路由器中的链接标签没有显示我想要的页面?

python - 从 Django 登录中检索 SQL 条目

django - 使用现有对象编辑Django模型?

python - 此字段无法更改 Django 验证错误

django - 如何登录? Django TastyPie with ApiKeyAuthentication 实际认证过程