Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么可以';Django rest swagger找到我的api路径了吗?_Python_Django_Rest_Django Rest Framework_Swagger - Fatal编程技术网

Python 为什么可以';Django rest swagger找到我的api路径了吗?

Python 为什么可以';Django rest swagger找到我的api路径了吗?,python,django,rest,django-rest-framework,swagger,Python,Django,Rest,Django Rest Framework,Swagger,我已经安装了Django Rest Swagger,并尽我所能进行了设置。从看这些文件,我真的不明白我是否需要做更多的工作,使它的工作 如果我转到localhost:800/docs我会看到: 如果导航到该URL,我会看到以下JSON: 那么,如果这些存在,是什么阻止它找到它们呢 我不认为这是我的问题,我不明白为什么会这样。我也发现了,但我想也不是这样 招摇设置: SWAGGER_SETTINGS = { 'exclude_namespaces': [], 'api_ver

我已经安装了Django Rest Swagger,并尽我所能进行了设置。从看这些文件,我真的不明白我是否需要做更多的工作,使它的工作

如果我转到
localhost:800/docs
我会看到:

如果导航到该URL,我会看到以下JSON:

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

我不认为这是我的问题,我不明白为什么会这样。我也发现了,但我想也不是这样


招摇设置:

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',
}
url.py

#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'), ]
#url.py
urlpatterns=模式(“”,
#示例:
#url(r'^$','nwod_characters.views.home',name='home'),
#url(r“^blog/”,包括('blog.url'),
url(r“^admin/”,包括(admin.site.url)),
url(r“^characters/”,包括('characters.url'),
url(r“^djangal/”,包括('djangal.url'),
url(r“^api auth/”,包括('rest\u framework.url',
namespace='rest_framework'),
url(r“^docs/”,
包括('rest\u framework\u swagger.url'),
)
#字符/url.py
mage_list=MageViewSet.as_视图({
“获取”:“列表”,
“post”:“create”
})
mage\u detail=MageViewSet.as\u视图({
“获取”:“检索”,
'put':'update',
“补丁”:“部分更新”,
“删除”:“销毁”
})
user\u list=UserViewSet.as\u视图({
“获取”:“列表”
})
user\u detail=UserViewSet.as\u视图({
“获取”:“检索”
})
urlpatterns=格式\后缀\模式([
url(r“^api/root$”,api_root),
url(r“^api/mages$”,mage_列表,name='mage-list'),
url(r“^api/mages/(?P[0-9]+)$”,mage_detail,name='mage-detail'),
url(r“^api/users$”,用户列表,name='user-list'),
url(r'^api/users/(?P[0-9]+)$”,user_detail,name='user-detail'),
])
urlpatterns+=[url(r'^$',IndexView.as_view(),name='index'),]

问题在于,据我所知,您正在执行“include('characters.url')”,rest\u framework\u swagger很难找到根URL模式中没有明确显示的URL-如果您想保证swagger会找到它们,您必须将它们扩展到您的URL模式中,而不是从另一个文件中包含它们,即:

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'),
....
urlpatterns=patterns(“”,
#示例:
#url(r'^$','nwod_characters.views.home',name='home'),
#url(r“^blog/”,包括('blog.url'),
url(r“^admin/”,包括(admin.site.url)),
url(r“^api/root$”,api_root),
url(r“^api/mages$”,mage_列表,name='mage-list'),
url(r“^api/mages/(?P[0-9]+)$”,mage_detail,name='mage-detail'),
url(r“^api/users$”,用户列表,name='user-list'),
url(r'^api/users/(?P[0-9]+)$”,user_detail,name='user-detail'),
....

我很高兴知道是否有人能够配置swagger,以避免将所有URL都混为一谈。

请发布您的设置和URL好吗?@AdelaN这样更好吗?swagger ui是应用程序的一部分还是单独运行的?@Ron我想它与django rest swagger包捆绑在一起了?是的。试着打开它e您在
localhost:800/docs
响应中看到的URL。例如,
localhost:800/docs/characters/api/mages
。如果它们都可以访问,并且您可以访问,请在此处共享,因为它们可能有错误。