5

我正在尝试使用 Django Rest Swagger 记录我的 Django REST API。

我的主要 url conf 如下所示:

urlpatterns =[
    url(r'^tickers/', include('tickerapi.urls')),
]

tickerapi/urls

schema_view = get_swagger_view(title='Ticker API')

urlpatterns = [
    url(r'^docs/', schema_view),
    url(r'^(?P<channel_name>[-\w]+)/', include([
        url(r'^$', views.ChannelUpdateView.as_view(),name='channel_update'), 
        url(r'^ONAIR$', views.CarouselsOnAirContentList.as_view(),name='carousel_onair_content_list'),      
        url(r'^(?P<carousel_name>[-\w]+)$', views.CarouselUpdateView.as_view(), name='carousel_update'),
    ])),
]

如您所见,我的网址是嵌套的,以便让不同的视图处理以下网址:

  • /tickers/{channel_name}(操作:PUT、PATCH)
  • /tickers/{channel_name}/ONAIR(操作:GET)
  • /tickers/{channel_name}/{carousel_name}(操作:GET、PUT、PATCH)

我的问题是 Django Rest Swagger 只显示嵌套 url 的一部分,如下所示: Django Rest Swagger Screenshot

据我所知,Django Rest Swagger 正在考虑/tickers/{channel_name}/tickers/{channel_name}/{carousel_name}是同一个端点。实际上,如果我只允许对视图处理/tickers/{channel_name}/{carousel_name}进行 GET 操作(使用 ListAPIView),那么缺少的嵌套 URL 将显示在 Swagger 中,减去 GET 操作:Django Rest Swagger Screenshot

有没有人遇到过这个问题?我正在使用 Django 1.10.5、 Django Rest Framework 3.5.4和 Django Rest Swagger 2.1.1

谢谢你的帮助

4

0 回答 0