首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Django-rest-swagger不能找到我的api路径?

为什么Django-rest-swagger不能找到我的api路径?
EN

Stack Overflow用户
提问于 2015-03-05 10:28:28
回答 1查看 2.7K关注 0票数 3

我安装了Django-Rest-Swagger,并尽我所能设置它。从看医生的角度来看,我真的不明白我是否需要做更多的工作。

如果我去localhost:800/docs,我会看到这个:

如果我导航到那个URL,就会看到这个JSON:

那么,如果它们存在,是什么阻止它找到它们呢?

我不认为我有一个model serializer,我不明白为什么会这样。我也找到了this,但我也不认为是这样。

傲慢的设置:

代码语言:javascript
复制
SWAGGER_SETTINGS = {
    'exclude_namespaces': [],
    'api_version': '0.1',
    'api_path': '/characters/api',
    'enabled_methods': [
        'get',
        'post',
        'put',
        'patch',
        'delete'
    ],
    'api_key': '',
    'is_authenticated': False,
    'is_superuser': False,
    'permission_denied_handler': None,
    'info': {
        'contact': 'froo@barr.com',
        'description': 'This is a nWoD-DB Api thing',
        'license': 'No Licence',
        'licenseUrl': '',
        'termsOfServiceUrl': '',
        'title': 'nWoD-DB',
    },
    'doc_expansion': 'none',
}

Urls.py

代码语言:javascript
复制
#urls.py
urlpatterns = patterns('',
                       # Examples:
                       # url(r'^$', 'nwod_characters.views.home', name='home'),
                       # url(r'^blog/', include('blog.urls')),

                       url(r'^admin/', include(admin.site.urls)),
                       url(r'^characters/', include('characters.urls')),
                       url(r'^djangular/', include('djangular.urls')),
                       url(r'^api-auth/', include('rest_framework.urls',
                                                  namespace='rest_framework')),
                       url(r'^docs/',
                           include('rest_framework_swagger.urls')),
                       )
#characters/urls.py
mage_list = MageViewSet.as_view({
    'get': 'list',
    'post': 'create'
})

mage_detail = MageViewSet.as_view({
    'get': 'retrieve',
    'put': 'update',
    'patch': 'partial_update',
    'delete': 'destroy'
})
user_list = UserViewSet.as_view({
    'get': 'list'
})
user_detail = UserViewSet.as_view({
    'get': 'retrieve'
})


urlpatterns = format_suffix_patterns([
    url(r'^api/root$', api_root),
    url(r'^api/mages$', mage_list, name='mage-list'),
    url(r'^api/mages/(?P<pk>[0-9]+)$', mage_detail, name='mage-detail'),
    url(r'^api/users$', user_list, name='user-list'),
    url(r'^api/users/(?P<pk>[0-9]+)$', user_detail, name='user-detail'),
])
urlpatterns += [url(r'^$', IndexView.as_view(), name='index'), ]
EN

回答 1

Stack Overflow用户

发布于 2016-05-10 19:30:57

“问题”是,就我所能找到的“包括(‘characters.urls’)”而言,rest_framework_swagger很难找到根urls中没有显式显示的任何urls-如果您想保证swagger会找到它们,就必须将它们扩展到urlpatterns中,而不是从其他文件中包含它们,即:

代码语言:javascript
复制
urlpatterns = patterns('',
        # Examples:
        # url(r'^$', 'nwod_characters.views.home', name='home'),
        # url(r'^blog/', include('blog.urls')),

        url(r'^admin/', include(admin.site.urls)),
        url(r'^api/root$', api_root),
        url(r'^api/mages$', mage_list, name='mage-list'),
        url(r'^api/mages/(?P<pk>[0-9]+)$', mage_detail, name='mage-detail'),
        url(r'^api/users$', user_list, name='user-list'),
        url(r'^api/users/(?P<pk>[0-9]+)$', user_detail, name='user-detail'),
....

我很高兴知道是否有人可以配置swagger,以避免将所有urls合并在一起。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28875587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档