DRF 3.6:如何在APIView中记录输入参数(用于自动生成doc)?

时间:2017-05-03 22:30:12

标签: django django-rest-framework

我正在努力与DRF 3.6 auto-generated interactive documentation一起提供输入参数以填充交互模式。

结果,我得到一个空窗口用于我的POST请求(实际上需要3个参数):

enter image description here

使用Swagger,我可以使用一些YAML直接在docstring中完成。 现在,在浏览DRF文档后,我无法找到实现它的方法。

class ActivateCustomerView(APIView):

    permission_classes = (AllowAny,)

    def post(self, request):
        """ View dedicated to activating a pre-recorded customer 
            # Should I add some parameters here?
        """

        serializer = ActivateCustomerSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        # ...

2 个答案:

答案 0 :(得分:6)

我得到汤姆克里斯蒂的回答:

Set oShell = WScript.CreateObject("WSCript.shell") oShell.run "cmd /K cd \ & cd C:\Users\me & cscript /nologo Setup.vbs > newfile & del example.ini & ren newfile example.ini & move example.ini C:\Program Files (x86)\Setup Folder" 本身不够 - 视图需要实现get_serializer,请参阅:https://github.com/encode/django-rest-framework/blob/master/rest_framework/schemas.py#L570

所以在我的情况下,添加这个效果很好:

serializer_class

答案 1 :(得分:0)

编辑:我忘了回答有关输入参数的问题。我相信这将基于序列化器。您是否尝试过指定serializer_class

使用DRF的内置文档生成器,您需要将文档字符串放在类级别并包含请求方法:

class ActivateCustomerView(APIView):
    """
    post:
    View dedicated to activating a pre-recorded customer 
    # Should I add some parameters here?

    # if you have a get request
    get:
    # your docs for the get handler
    """

    permission_classes = (AllowAny,)

    def post(self, request):

        serializer = ActivateCustomerSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        # ...