Получить из API Чаши
У меня есть конечная точка для добавления элементов в таблицу DynamoDB "MasterList"
@app.route('/save_listing', methods=['POST'], content_types=['application/json'], cors=cors_config)
def post_item():
try:
data = app.current_request.json_body
except Exception as e:
data = e
try:
insert_item({
'pk': data['sku'],
"account" : data['account']
})
except Exception as e:
return str(e)
return str(data)
Когда я POST использую почтальон, он добавляет в таблицу и возвращает строку данных.
Сейчас я пытаюсь реализовать тот же POST в ReactJS
createListing(listing) {
console.log(listing)
fetch('https://z3sr9ja4zf.execute-api.us-east-1.amazonaws.com/api/save_listing', {
method: 'post',
body: JSON.stringify(listing)
}).then(function(response) {
return response;
});
}
console.log (листинг) производит
Как я могу использовать конечную точку на ReactJS, кажется, что я не передаю объект правильно. Сейчас в БД ничего не пишется, и я получаю неопределенный ответ. Также я получил 415 ответ.
Заранее спасибо.
JSON.stringify(listing)
производит:
{ "Код":"OX-PFWI-BNV0","счет": "АО", "ASIN":"","cogl":-5,09,"винтики": 0, "статус":"","launch_date":"NULL" "per_item_on_hand_rate":0,"selling_price":0,"expected_fulfillment_fee_per_unit":0,"рейтинг":0,"picture_count":0,"amz_status":"","fba_fee":0,"item_volume":"NULL","product_size_tier":"","volume_rate":"NULL","страна": "США", "менеджер":"NULL","sub_category":"NULL"}
Если я отправлю сообщение с помощью почтальона:
И Заголовки:
0 ответов
Код ответа HTTP 415 указывает, что серверу не нравится формат вашей полезной нагрузки. Попробуйте изменить код так, чтобы он включал те же заголовки, что и в вашем запросе PostMan:
createListing(listing) {
console.log(listing)
fetch('https://z3sr9ja4zf.execute-api.us-east-1.amazonaws.com/api/save_listing', {
method: 'post',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(listing)
}).then(function(response) {
return response;
});
}
ПРИМЕЧАНИЕ: я не включил Accept-Encoding
в этом фрагменте кода значение на скриншоте недопустимо - для получения дополнительной информации см. здесь.