我正在尝试使用 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
谢谢你的帮助