Как сделать этот вызов API REST в Python? - PullRequest
0 голосов
/ 12 декабря 2018

Я борюсь с тем, как правильно сделать этот вызов REST API в Python с использованием пакета requests.

curl --user aa43ae0a-a7a7-4016-ae96-e253bb126aa8:166291ff148b2878375a8e54aebb1549 \
  --request POST --header "Content-Type: application/json" \
  --data '{ "startDate": "2016-05-15" , "endDate": "2016-05-16", "format": "tsv", "dataset": "appStart" }' \
  https://analytics.cloud.unity3d.com/api/v2/projects/aa43ae0a-a7a7-4016-ae96-e253bb126aa8/rawdataexports

Я не знаю, как установить параметры:

r = requests.post("https://analytics.cloud.unity3d.com/api/v2/projects/aa43ae0a-a7a7-4016-ae96-e253bb126aa8/rawdataexports", ...)

Любая помощь будет оценена, спасибо заранее.

1 Ответ

0 голосов
/ 12 декабря 2018

Примерно так должно сработать:

auth = HTTPBasicAuth('aa43ae0a-a7a7-4016-ae96-e253bb126aa8', '1662[....]549')
payload = {
    "startDate": "2016-05-15" ,
    "endDate": "2016-05-16",
    "format": "tsv",
    "dataset": "appStart",
}
url = "https://analytics.cloud.unity3d.com/api/v2/projects/aa43ae0a-a7a7-4016-ae96-e253bb126aa8/rawdataexports"
result = requests.post(url, json=payload, auth=auth)
  1. Аутентификация: --user аргумент команды curl позволяет установить HTTP Basic Auth
  2. --data был полезной нагрузкой JSON, а запрошенный тип содержимого настроен (через заголовки) на Content-Type: application/json.Упростите это с помощью requests , используя аргумент json и передавая правильный python dict в качестве полезной нагрузки .Полезная нагрузка будет преобразована в json, и к запросу будет добавлен правильный заголовок для получения ответа с данными json.

Будьте осторожны! В своем вопросе вы указалипользователь / пароль, используемый для вызова этого REST API.Если эта информация является реальной, размещение ее в Stack Overflow, вероятно, является проблемой безопасности!

...