On contrary I really hate that :D.
I am calling vibed from PHP and I need to tweak my curl for every request baceuse of this :D
public function sendRequest($method, $params = []) {
$method = strtolower(preg_replace('/([^A-Z])([A-Z])/', "$1_$2", $method));
$isGetRequestType = substr($method, 0, 3) == 'get';
$isPutRequestType = substr($method, 0, 3) == 'set';
$httpHeader = $isGetRequestType ? [] : ['Content-Type: application/json'];
if ($this->sessionId) {
$httpHeader[] = "Cookie: vibe.session_id=" . $this->sessionId . "; Path=/; HttpOnly";
}
if ($isGetRequestType) {
$url = UrlBuilder::fromUrl($this->url)->appendPath(substr($method, 4));
$url->addParams($params);
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPHEADER => $httpHeader,
CURLOPT_USERAGENT => EdiClient::USER_AGENT,
CURLOPT_URL => $url->toString(),
CURLOPT_RETURNTRANSFER => true
]);
} elseif ($isPutRequestType) {
$url = UrlBuilder::fromUrl($this->url)->appendPath(substr($method, 4));
$curl = curl_init($url);
$json = json_encode($params);
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPHEADER => $httpHeader,
CURLOPT_USERAGENT => EdiClient::USER_AGENT,
CURLOPT_URL => $url->toString(),
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => $json,
CURLOPT_RETURNTRANSFER => true
]);
} else {
$url = UrlBuilder::fromUrl($this->url)->appendPath($method);
$curl = curl_init($url);
$json = json_encode($params);
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPHEADER => $httpHeader,
CURLOPT_USERAGENT => EdiClient::USER_AGENT,
CURLOPT_URL => $url->toString(),
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $json,
CURLOPT_RETURNTRANSFER => true
]);
}
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, true);
return $result;
}