#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 или видеофайл)