Как обернуть файл, загружая REST API с помощью GraphQL?

Я использую Graphene и Django. И я пытался обернуть приведенный ниже код с помощью GraphQL.

def download(request):
    file_path = "/a/file/path/"
    if os.path.exists(file_path):
        with open(file_path, 'rb') as fh:
            response = HttpResponse(fh.read(), content_type="application/vnd.ms-excel")
            response['Content-Disposition'] = 'inline; filename=' + os.path.basename(file_path)
            return response
    raise Http404

Обертка выглядит следующим образом (просто отправьте вызов API внутри резольвера):

class Query(ObjectType):
    download_a_file = graphene.String(required=True)

    def resolve_download_a_file(root, info):
        url = info.context.build_absolute_uri(reverse("download"))
        response = requests.post(url)
        return str(response.status_code)

Если я отправляю вызов GraphQL, ничего не загружается, я получаю только код состояния 200. Если я использую REST API, я получаю файл.

Хотелось бы узнать, как я могу получить файл при вызове конечной точки с помощью GraphQL.

Вернуться на верх