如何使用 drf-yasg 在 django-rest-framework 中为文件上传 API 制作 swagger 模式?

Tou*_*Guy 4 django swagger drf-yasg

我找不到为文件上传 API 制作架构的任何支持。Swagger UI 必须有一个按钮,允许测试人员上传文件以进行测试。我使用 firebase 作为数据库,因此序列化程序和模型不会出现。我只使用 Django 的 rest 框架。

我查看了 drf-yasg 的文档,该文档建议使用 Operation 进行文件上传。但它是一个非常抽象和晦涩的文档。

小智 7

确保parser_classes在视图中指定。默认情况下,它是不处理文件上传的 JSON 解析器。使用MultiPartParserFileUploadParser

class MyUploadView(CreateAPIView):
    parser_classes = (MultiPartParser,)
    ...

    @swagger_auto_schema(operation_description='Upload file...',)
    @action(detail=False, methods=['post'])
    def post(self, request, **kwargs):
        # Code to handle file

Run Code Online (Sandbox Code Playgroud)