我建立一个REST客户端php类来与Stupeflix REST Api进行通信以获取任务状态。我已经有了工作状态任务。 它(应该)的工作原理如下:
在font中,带有ajax调用的表单:
html部分:
<form action="stupeflix.php" method="POST">
<h2>Formulaire</h2>
<input type="submit">
</form>
JS部分:
var action = $('form').attr('action');
var method = $('form').attr('method');
var data;
var step;
var tasks;
function status() {
step = 'status';
tasks = 'theTaskId';
data = {
"step": step,
"tasks": tasks
};
$.ajax({
url: action,
method: method,
data: data,
success: function(response){
console.log(response);
},
error: function(error){
console.log('erreur');
}
});
}
PHP部分:
一方面,根据步骤创建对象的文件:
require_once('StupeflixApi.php');
/**
* On récupère la variable $_POST et on vérifie le step
*/
if (isset($_POST['step']) || !empty($_POST['step'])) {
/*print_r($_POST);*/
switch ($_POST['step']) {
case 'preview':
try {
$Stupeflix = new StupeflixApi('http://dragon.stupeflix.com/v2/create_file/preview/', 'secret', 'apikey');
$json = json_encode($Stupeflix->generatePreview());
} catch (Exception $e) {
echo $e;
}
break;
case 'generate':
$Stupeflix = new StupeflixApi('http://dragon.stupeflix.com/v2/create_file/preview/', 'secret', 'apikey');
$json = json_encode($Stupeflix->generateMovie());
break;
case 'status':
try {
$Stupeflix = new StupeflixApi('http://dragon.stupeflix.com/v2/status', '', '');
$tasks = $_POST['tasks'];
$json = $Stupeflix->getStatus($tasks);
echo json_decode($json);
} catch (Exception $e) {
echo $e;
}
break;
default:
echo '';
break;
}
}
另一方面,我的班级:
class StupeflixApi {
private $host;
private $secret;
private $api_key;
/**
* Constructeur
*/
public function __construc($host, $secret, $api_key) {
$this->host = $host;
$this->secret = $secret;
$this->api_key = $api_key;
}
/**
* Vérifie le status
*/
public function getStatus($tasks) {
if ( !isset($tasks) || empty($tasks) || $tasks == null ) {
echo 'Tasks indéfinies';
}
else {
/**
* Définit le service status comme tache
*/
/*$postData = array(
'tasks' => $tasks
);*/
$postData = array(
'tasks' => $tasks
);
/**
* Initialise la connexion via cURL
*/
$ch = curl_init($this->host);
curl_setopt_array($ch, array(
CURLOPT_POST => TRUE,
CURLOPT_HEADER => true,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
CURLOPT_POSTFIELDS => json_encode($postData),
CURLOPT_SSL_VERIFYPEER => false,
));
/**
* Envoi de la requête via cURL
*/
$response = curl_exec($ch);
/**
* Vérifie s'il y a des erreurs dans la requête
*/
if($response === FALSE){
die(curl_error($ch));
}
else {
return json_encode($response);
}
}
}
}
实际上,对于这项任务,状态,不需要apikey或密钥。
最终网址应如下所示:
https://dragon.stupeflix.com/v2/status?tasks=theTaskId
但它总是返回错误的错误。
任何一只手?
答案 0 :(得分:0)
对我感到羞耻,这是一个错字:__construc
而不是__construct
与t。