Вызов API-интерфейса cloudconvert внутри моего REST API

Я создал тестовую функцию в своем REST API (используя платформу SLIM) для тестирования моей реализации класса-оболочки для API cloudconvert.

$app->get('/test', 'authenticate', function() use ($app) {

    $response = array();
    $converter = new CloudConverter();
    $url = $converter->createProcess("docx","pdf");
    $response["url"] = $url;  
    echoRespnse(201, $response);            

});

Моя функция createProcess внутри класса CloudConverter выглядит так:

public function createProcess($input_format,$output_format)
{
    $this->log->LogInfo("CreateProcess Called");

    $headers = array('Content-type: application/json');
    $curl_post_data = array('apikey' => API_KEY,'inputformat' => $input_format,'outputformat' => $output_format);        
    $curl = curl_init(CLOUD_CONVERT_HTTP);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($curl_post_data));
    $curl_response = curl_exec($curl);

    if ($curl_response === false) 
    {
        $info = curl_getinfo($curl);
        curl_close($curl);
        die('error occured during curl exec. Additioanl info: ' . var_export($info));
        $this->log->LogInfo('error occured during curl exec. Additioanl info: ' . var_export($info));
    }

    curl_close($curl);
    $decoded = json_decode($curl_response,true);
    return $decoded['url']; 
}

Я протестировал мой API с помощью Chrome Advanced Rest Client и вижу успешный ответ на мой вызов API cloudconvert, но это не то, чего я ожидал, как видно из приведенного выше кода. Я ожидал извлечь URL и вернуть ЭТО в моем ответе.

Мои вопросы: КАК я могу извлечь URL из ответа от cloudconvert и вернуть его в моем собственном ответе.

1 ответ

Решение

Вам нужно использовать

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true)

вернуть ответ в виде строки: curl docs.

Другие вопросы по тегам