Здравствуйте. Мне нужно сделать аналогичный запрос, как этот:
fetch('/cms/api/collections/get/ende?token=account-2d62f0209212457d0138c79cefaa06', {
method: 'post',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
filter: {bol:false},
})
})
.then(res=>res.json())
.then(res => console.log(res));
Я попыталась сделать так:
function myapi($method, $target, $token, $data = false) {
$domain = $_SERVER['HTTP_HOST'];
$prefix = $_SERVER['HTTPS'] ? 'https://' : 'http://';
$ch = curl_init("$prefix$domain/cms/api/$method$target?token=$token");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$curlRes1 = curl_exec($ch);
curl_close($ch);
return json_decode($curlRes1, true);
}
$data = json_encode(["filter" => ["bol"=>false]]);
$carts = myapi("collections/get/", "ende", "account-2d62f0209212457d0138c79cefaa06", $data);
Но данные не принялись и вернулся обычный массив без условий. Я понимаю, что там оно отправляется в body, а я просто шлю post запрос.
Подскажите, что нужно написать в curl, чтобы условия были учтены?
p.s. вся суть в этой строке:
$data = json_encode(["filter" => ["bol"=>false]]);