Python Flask возвращает видеофайл ИЛИ данные JSON с помощью curl

#python #flask #curl #httprequest

#python #flask #curl #httprequest

Вопрос:

Я использую сервер python flask swagger для своего API. Я хочу создать API, который может возвращать некоторые данные json или видеофайл.

Мое определение функции:

 from flask import send_file

def my_function():
    some_case = True #This could be False
    try:
        some_json = {
            "Data1": "Blah",
            "Data2": "0Blah"
        }

        if some_case:
            return some_json, 200
        else:
            return send_file('/home/video_file.mp4')

    except Exception as e:
        return str(e)
  

Я использую curl для вызова моего API следующим образом:

 curl -X GET "http://0.0.0.0:8888/MyFunction"
{
  "Data1": "Blah",
  "Data2": "0Blah"
}
  

Но когда я вызываю его, когда some_case=False и, следовательно, загружается видеофайл, я получаю:

 curl -X GET "http://0.0.0.0:8888/MyFunction"
Warning: Binary output can mess up your terminal. Use "--output -" to tell 
Warning: curl to output it to your terminal anyway, or consider "--output 
Warning: <FILE>" to save to a file.
  

И затем я должен указать выходной файл таким образом, чтобы фактически загрузить его:

 curl -X GET "http://0.0.0.0:8888/MyFunction" --output my_video.mp4
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100 6575k  100 6575k    0     0   642M      0 --:--:-- --:--:-- --:--:--  642M
  

Как я могу вызвать этот API с помощью curl, не зная, каким будет возврат? (json или видеофайл)