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 !