2015-03-05 7 views
2

Я установил Django-Rest-Swagger и сделал все, что мог, чтобы настроить его. От взгляда на документы я действительно не понимаю, нужно ли мне больше делать, чтобы он работал.Почему Django-rest-swagger не находит мои пути api?

Если я иду в localhost:800/docs я вижу это:

swagger just sits looking for resources

Если я перейти к этому URL, я вижу это JSON:

The Json at localhost:8000/docs/api-docs with my three api paths

Так что, если таковые существуют, что бы остановить его от поиска?

Я не думаю, что у меня есть model serializer Я не понимаю, почему это было бы. Я также нашел this, но я не думаю, что это так.


настройки чванство:

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': '[email protected]', 
     'description': 'This is a nWoD-DB Api thing', 
     'license': 'No Licence', 
     'licenseUrl': '', 
     'termsOfServiceUrl': '', 
     'title': 'nWoD-DB', 
    }, 
    'doc_expansion': 'none', 
} 

Urls.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'), ] 
+0

Не могли бы вы разместить свои настройки и URL-адреса, пожалуйста? – AdelaN

+0

@ AdelaN - это что-то лучше? – Pureferret

+0

Является ли частная часть вашего приложения или вы запускаете его отдельно? – Ron

ответ

0

'проблема' в том, что вы делаете "включают в себя ('characters.urls')", насколько я может найти, rest_framework_swagger с трудом находит какие-либо URL-адреса, которые явно не указаны в ваших корневых urlpatterns - если вы хотите гарантировать, что swagger найдет их, вам придется расширять их в своих urlpatterns вместо того, чтобы включать их из другого файла, т.е .:

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'), 
.... 

Я был бы рад узнать, если у кого есть способ настроить чванство, чтобы избежать того, чтобы сваливать все URLs.

+0

Это сработало для вас, это гипотеза? – Pureferret

Смежные вопросы