Deux fonctions CURL qui vont vous permettre de faire des requêtes très rapidement !
Dans certains projets nécessitant l'utilisation de CURL pour par exemple appelé une API avec PHP, recopié la requête à chaque fois, c'est long et assez pénible non ? Voici donc deux fonctions pour vous permettre d'être plus rapide :
1. Fonction "Get" sans token
function cURLGet($server, $calltype)
{
$ch = curl_init($server . $calltype);
curl_setopt_array($ch, array(
CURLOPT_HTTPGET => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Content-Type:application/json' // "Content-Type:application/json", et non pas "Content-Type: application/json"
),
));
$response = curl_exec($ch);
if ($response === false) {
return (curl_error($ch));
}
$responseData = json_decode($response, true);
return $responseData;
}
$server correspond à l'URL de votre api, par exemple : https://mon-api.com
$calltype correspond au chemin de votre api, par exemple : /v1/login/
Pour utiliser la fonction, un simple appel dans une variable vous suffit :
$maVariable = apiCallGet('https://mon-api.com', '/v1/login/');
2. Fonction "Get" avec token
function cURLGet($server, $access_token, $calltype)
{
$ch = curl_init($server . $calltype);
curl_setopt_array($ch, array(
CURLOPT_HTTPGET => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'authorization:Bearer ' . $access_token, // "authorization:Bearer", et non pas "authorization: Bearer"
'Content-Type:application/json' // "Content-Type:application/json", et non pas "Content-Type: application/json"
),
));
$response = curl_exec($ch);
if ($response === false) {
return (curl_error($ch));
}
$responseData = json_decode($response, true);
return $responseData;
}
La fonction fonctionne comme l'étape 1, la seule différence ici, nous avons la variable "$access_token".
$access_token correspond au token d'authentification API, "authorization:Bearer" lui correspond à une authentification de type Bearer.
L'utilisation de la fonction fonctionne comme l'étape 1, il vous suffit juste d'y ajouter votre token avec le $calltype.
3. Fonction "Post" sans token
function cURLPost($server, $postData, $calltype)
{
$ch = curl_init($server . $calltype);
curl_setopt_array($ch, array(
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Content-Type:application/json' // "Content-Type:application/json", et non pas "Content-Type: application/json"
),
CURLOPT_POSTFIELDS => json_encode($postData)
));
$response = curl_exec($ch);
if ($response === false) {
return (curl_error($ch));
}
$responseData = json_decode($response, true);
return $responseData;
}
$server et $calltype sont identique que le point 1.
$postData est un tableau contenant vos paramètres à envoyer.
Exemple d'utilisation:
$dataPost = [
'grant_type' => 'password',
'username' => 'monUsername,
'password' => 'monPassword'
];
$postCurl= cURLPost('https://mon-api.com/, $dataPost, '/api/oauth/token');
4. Fonction "Post" avec token
function cURLPost($server, $postData, $access_token, $calltype)
{
$ch = curl_init($server . $calltype);
curl_setopt_array($ch, array(
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'authorization:Bearer ' . $access_token, // "authorization:Bearer", et non pas "authorization: Bearer"
'Content-Type:application/json' // "Content-Type:application/json", et non pas "Content-Type: application/json"
),
CURLOPT_POSTFIELDS => json_encode($postData)
));
$response = curl_exec($ch);
if ($response === false) {
return (curl_error($ch));
}
$responseData = json_decode($response, true);
return $responseData;
}
$server, $access_token et $calltype correspondent à l'étape 1 & 2, $postData à l'étape 3.
Avec ces fonctions, vous aurez de quoi faire des appels CURL rapidement et efficacement !