首页 > 解决方案 > Swagger 没有正确反映 Django Rest Framework 中的 POST 端点定义

问题描述

我有一个小端点

class SmallEndpointViewSet(APIView):

    def post(self, request, *args, **kwargs):
        //add the request.data data to the db

    def delete(self, request, pk, format=None):
       // remove the data[pk] from db

在 urls.py

urlpatterns = [
 url(
        r'^small-endpoint/(?P<pk>\d+)/$',
        mystuff_views.SmallEndpointViewSet.as_view(),
        name='small-endpoint'
    ),
    url(
        r'^small-endpoint/$',
        mystuff_views.SmallEndpointViewSet.as_view(),
        name='small-endpoint'
    ),
]

一切正常,除了大摇大摆,帖子显示为

POST /small-endpoint/{id}

代替

POST /小端点/

一位同事告诉我,我需要向 as_view 发送一个参数,如下所示:

url(
            r'^small-endpoint/$',
            mystuff_views.SmallEndpointViewSet.as_view({
            'post': 'create'
        }),
            name='small-endpoint'
        ),
  

但随后我收到错误 TypeError: as_view() 恰好需要 1 个参数(给定 2 个)

我相信 as_view 的 APIView 版本不接收参数,这很好。我真正想要的是大摇大摆地正确反映 POST 调用不需要和 id

我怎样才能做到这一点?

标签: djangodjango-rest-frameworkswagger

解决方案


推荐阅读