#php #node.js #arrays #json
#php #node.js #массивы #json
Вопрос:
Я пытаюсь отправить эти данные в конечную точку API, я не могу определить формулу, по которой она должна быть фактически передана, мне нужно, чтобы она работала с NodeJS (axios) для публикации
$product = ShoppyModelsProduct::create([
'title' => 'My test product',
'price' => 10,
'unlisted' => false,
'type' => 'service',
'currency' => 'EUR',
'stock_warning' => 0,
'quantity' => [
'min' => 1,
'max' => 10
],
'email' => [
'enabled' => false
]
]);
ОТРЕДАКТИРОВАНО:
С предложением @Nick (в комментариях):
let opts = {
method: "PUT",
headers: this.headers,
data: JSON.stringify({
"title": "My test product",
"price": 10,
"unlisted": false,
"type": "service",
"currency": "EUR",
"stock_warning": 0,
"quantity": {
"min": 1,
"max": 10
},
"email": {
"enabled": false
}
}),
url: `${this.base_url}/v1/products/`
};
let res = await axios(opts).catch(function(error) {
if (error.response) {
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
}
});
return res.data;
ВОЗВРАТ
{
message: 'The given data was invalid.',
errors: {
title: [ 'The title field is required.' ],
price: [ 'The price field is required.' ],
type: [ 'The type field is required.' ],
'email.enabled': [ 'The email.enabled field is required.' ],
currency: [ 'The currency field is required.' ]
}
}
Комментарии:
1.
json_encode($product)
?2. @Nick это нужно для NodeJS
Ответ №1:
Вам не нужно оборачивать объект данных с помощью JSON.stringify.
const opts = {
method: 'PUT',
headers: this.headers,
data: {
title: 'My test product',
price: 10,
unlisted: false,
type: 'service',
currency: 'EUR',
stock_warning: 0,
quantity: {
'min': 1,
'max': 10,
},
email: {
'enabled': false,
},
},
url: `${this.base_url}/v1/products/`,
};
Комментарии:
1. Спасибо, я этого не понял :’)