Как я могу получить объекты из back4app с помощью Python 3?
Я пытаюсь взаимодействовать с базой данных, хранящейся в back4app, используя python. После отправки моего запроса GET я получаю "{'message': 'Not Found', 'error': {}}". Мой код Python выглядит следующим образом:
import json, http.client, urllib.parse
# create a connection to the server
url = "parseapi.back4app.com"
connection = http.client.HTTPSConnection(url)
connection.connect()
# define parameter for GET request
params = urllib.parse.urlencode({"where":json.dumps({"Name": "Dru Love"})})
# perform GET request
connection.request('GET', '/parse/classes/PGA?%s' % params, '', {
"X-Parse-Application-Id": "app_id",
"X-Parse-REST-API-Key": "api_key"
})
# store response in result variable
result = json.loads(connection.getresponse().read())
connection.close()
print(result)
Отклик:
{'message': 'Not Found', 'error': {}}
3 ответа
Решение
Проблема заключается в вызове connection.request(). "/ Parse" должен быть удален из переданного URL-адреса. Рабочий код выглядит следующим образом:
connection.request('GET', '/classes/PGA?%s' % params, '', {
"X-Parse-Application-Id": app_id,
"X-Parse-REST-API-Key": api_key,
})
Я действительно рекомендую использовать пакет запросов. Пакет очень хороший, для HTTP
звонки.
Маленький пример для вашего случая.
# Your payloads
params = {
"X-Parse-Application-Id": "app-id",
"X-Parse-REST-API-Key": "YOUR_IP_KEY"
}
url = 'https://parseapi.back4app.com/parse/classes/Congressmen'
# GET method, with URI parameters
response = requests.get(url, params=params)
print(response.url)
# Get json data from a response.
print(response.json())
Чтобы подключиться к back4app с помощью модуля запросов python, вам необходимо определить идентификатор приложения и ключ REST API в заголовках (без использования параметров).
# Your payloads
headers = {
"X-Parse-Application-Id": "app-id",
"X-Parse-REST-API-Key": "YOUR_IP_KEY"
}
url = 'https://parseapi.back4app.com/parse/classes/Congressmen'
# GET method, with URI parameters
response = requests.get(url, headers=headers)
print(response.url)
# Get json data from a response.
print(response.json())