Hur man använder adminvista.com API med PHP-klienter

I den här guiden kommer vi att gå igenom de olika PHP-klienter du kan använda för att ansluta till adminvista.com API.

Specifikt kommer vi att täcka användningen av adminvista.com API med funktionen file_get_contents, Guzzle, HTTPful och Symfonys HTTPS-klient.

Vad är adminvista.com API?

adminvista.com tillhandahåller en uppsättning gratis verktyg som du kan använda för att övervaka prestandan på din webbplats. Dessa verktyg inkluderar en trasig länkanalysator, tid att ladda och en DNS-kontroll. Dessa verktyg kan nås online via webbgränssnittet eller API:et.

API:t är baserat på HTTP och kan nås från alla programmeringsspråk med ett HTTP-klientbibliotek. API:et har en generös gratis nivå som du kan börja använda utan att behöva ange betalningsinformation.

Det vi ska bygga

Vi kommer att skriva ett skript, körbart från kommandoraden, som beräknar hur lång tid det tar att ladda Googles webbplats och skriva ut dem till terminalen. Vi kommer att implementera detta enkla program med hjälp av olika PHP HTTP-klienter för att demonstrera hur API:t ser ut.

Specifikt kommer vi att använda de inbyggda funktionerna – file_get_contents() och php_curl, och tillägget Guzzle PHP. Hur enkla dessa exempel än kan tyckas, demonstrerar de kärnkoncepten för att använda adminvista.com API.

Förutsättningar

För att följa med måste du kunna PHP i förväg och ha det installerat på din dator. Dessutom behöver du Composer för att hantera tillägg.

Slutligen behöver du också en textredigerare att skriva kod i. I mitt fall kommer jag att använda Visual Studio Code, en populär textredigerare med öppen källkod från Microsoft. Du kan ladda ner den från Visual Studio Codes webbplats.

adminvista.com API översikt

Wdzwdz API har olika slutpunkter beroende på vad du vill göra. Den fullständiga listan över endpoints och deras tillhörande dokumentation finns på dokumentationssidan.

Skapa ett adminvista.com-konto

För att komma igång med att använda API:et måste du skapa ett konto genom att gå till API:ets målsida och klicka på registreringsknappen. När registreringen är klar kommer du att föras till instrumentpanelen, där du ser din API-nyckel. Instrumentpanelen ska vara som bilden nedan. Jag har släckt min API-nyckel av säkerhetsskäl.

I varje API-begäran du gör måste du ange den här nyckeln som en begäranshuvud. Snart kommer du att se hur detta kan göras.

Med ett adminvista.com-konto skapat och PHP installerat kan vi börja skapa projektet.

Skapar projektmappen

Skapa först en mapp där vi lagrar projektfilerna. Efter det skapar du följande filer

  • .env
  • with_curl.php
  • with_file_get_contents.php
  • with_guzzle.php

Kör sedan följande kommando för att installera tillägget vlucas/phpdotenv och guzzlehttp/guzzle

composer require vlucas/phpdotenv guzzlehttp/guzzle

Vid det här laget bör din projektmapp se ut så här:

Öppna nu .env-filen och lägg till följande kodrad, ersätt med din faktiska API-nyckel från adminvista.com-instrumentpanelen:

API_KEY=<your-api-key>

Använder file_get_contents()

Den första metoden vi kan använda för att göra HTTP-förfrågningar är att anropa funktionen file_get_contents() som är inbyggd i PHP. Funktionssignaturen för funktionen file_get_contents() är som följer:

file_get_contents(path, include_path, context)

Även om metoden ofta används för att läsa innehållet i en fil i lokal lagring, kan vi använda den för att läsa en webbresurs, till exempel data som returneras av en API-slutpunkt.

Nu för att komma igång, öppna with_file_get_contents.php och lägg till PHP-koden.

<?php
   // all the code to be inserted here
?>

Därefter kan vi komma igång med att ladda tillägg. Lägg till följande kodrad till din fil

require_once('vendor/autoload.php');

Därefter kan vi ladda våra miljövariabler, som inkluderar API-nyckeln

$dotenv = DotenvDotenv::createImmutable(__DIR__);
$dotenv->load();

Sedan kan vi definiera nyttolasten. Detta kommer att vara data som vi kommer att skicka som en del av förfrågningsorganet

$payload = json_encode([
    "url" => "https://www.google.com", 
    "proxyCountry" => "us",
    "followRedirect" => true
]);

Vi har skapat en nyttolastvariabel och tilldelat den till en JSON-sträng som innehåller url, proxyCountry och followRedirect som egenskaper.

URL-egenskapen anger webbsidan vars laddningstid vi vill kontrollera.

ProxyCountry är platsen för servern vi vill använda för att göra begäran. I det här fallet använder vi USA-servern, men du kan välja mellan Indien, Kina, Storbritannien och Frankrike. Du kan läsa dokumentationen för mer information.

Sedan anger followRedirect om proxyservern ska följa eventuella omdirigeringar och mäta svarstiden för det slutliga svaret eller den första omdirigeringen.

Efteråt kan vi skapa alternativ som konfigurerar vår begäran genom att lägga till denna kod:

$options = [
    "http" => [
        "method" => "POST",
        "header" => array("Content-Type: application/json", "x-api-key : " . $_ENV['API_KEY']),
        "content" => $payload
    ] 
];

Genom att göra detta har vi skapat ett optionsobjekt som anger att vår HTTP-metod är POST, och vi har en rubrik som anger två egenskaper, innehållstypen som JSON och x-api-nyckeln som API-nyckeln som du angav i .env-fil och har laddats som en miljövariabel.

Därefter kan vi göra begäran genom att skapa en ström där våra alternativ kommer att skrivas till:

$context = stream_context_create($options);

Därefter anropar vi metoden file_get_contents() för att göra begäran och lagra svaret som en variabel.

$response = file_get_contents("https://api.adminvista.com.com/loadtime", false, $context);

Vi gjorde begäran till https://api.adminvista.com.com/loadtime. Den falska säger till PHP att inte använda sökvägen. Och vi överför det sammanhang vi skapade till metoden.

För att visa svaret använder vi utdata enligt följande.

echo "Loadtime: " . json_decode($response)->data->total . "n";

I slutet av detta bör din fil se ut så här:

<?php
    require_once('vendor/autoload.php');

    $dotenv = DotenvDotenv::createImmutable(__DIR__);
    $dotenv->load();

    $payload = json_encode([
        "url" => "https://www.google.com", 
        "proxyCountry" => "us",
        "followRedirect" => true
    ]);

    $options = [
        "http" => [
            "method" => "POST",
            "header" => array("Content-Type: application/json", "x-api-key : " . $_ENV['API_KEY']),
            "content" => $payload
        ] 
    ];

    $context = stream_context_create($options);

    $response = file_get_contents("https://api.adminvista.com.com/loadtime", false, $context);

    echo "Loadtime: " . json_decode($response)->data->total . "n";
?>

När du kör filen med följande kommando:

php with_file_get_contents.php

Du kommer att få följande utdata

Loadtime: 81

Använder cURL

cURL är ett kommandoradsverktyg som används för att göra URL-förfrågningar på klientsidan. I PHP kan det användas med hjälp av verktyget php-curl. För att börja använda den, öppna filen with_curl.php och skriv beskrivningen PHP

<?php
    // all new code will be written here
?>

Låt oss sedan importera tillägg och ladda miljövariabeln API_KEY som definieras i .env-filen

require_once('vendor/autoload.php');

$dotenv = DotenvDotenv::createImmutable(__DIR__);
$dotenv->load();

Därefter kommer vi att skapa en variabel för att lagra rubrikerna för vårt objekt som en array där varje enskilt element i arrayen är en specifik header.

$header = ["Content-type: application/json", "x-api-key: " . $_ENV['API_KEY']];

Vi definierade två rubriker, en för innehållstypen och en för API-nyckeln.

Sedan kan vi definiera innehållet i begäran.

$body = json_encode([
    "url" => "google.com",
    "proxyCountry" => "us",
    "followRedirect" => true
]);

Efter detta kan vi skapa en curl-session med curl_init()-funktionen. Vi kan skicka in den URL som vi vill göra begäran till som ett argument till funktionsanropet.

$ch = curl_init("https://api.adminvista.com.com/loadtime");

Nu kan vi sätta ihop allt genom att definiera rubriken och brödtexten som alternativ för sessionen. För detta kommer vi att använda funktionen curl_setopt_array()

curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => $header,
    CURLOPT_POSTFIELDS => $body
]);

För att göra begäran kommer vi att anropa curl_exec()-funktionen

$response = curl_exec($ch);

Vi har lagrat svaret i variabeln $response, så vi kan stänga sessionen för att frigöra systemresurser som används av sessionen.

curl_close($ch);

Slutligen kan vi skriva ut svaret på skärmen med var_dump.

var_dump($response);

I slutändan bör din skriptfil se ut så här

<?php
    require_once('vendor/autoload.php');

    $dotenv = DotenvDotenv::createImmutable(__DIR__);
    $dotenv->load();

    $header = ["Content-type: application/json", "x-api-key: " . $_ENV['API_KEY']];

    $body = json_encode([
        "url" => "google.com",
        "proxyCountry" => "us",
        "followRedirect" => true
    ]);

    $ch = curl_init("https://api.adminvista.com.com/loadtime");

    curl_setopt_array($ch, [
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_HTTPHEADER => $header,
        CURLOPT_POSTFIELDS => $body
    ]);

    $response = curl_exec($ch);

    curl_close($ch);

    var_dump($response);
?>

När vi kör skriptet med php with_curl.php, bör du få följande utdata:

{"timestamp":1666083632547,"apiStatus":"success","apiCode":200,"meta":{"url":"google.com","followRedirect":true,"redirectedURL":"https://www.google.com/?gws_rd=ssl","test":{"id":"d20h1hb409qbfwm0g534l51asugpi5hl"}},"data":{"dns":12,"connect":17,"tls":6,"send":21,"wait":110,"total":114}}bool(true)

Begäran slutfördes framgångsrikt och API:et svarade med JSON0-data. Du kan använda dessa uppgifter som du vill.

Med Guzzle

I den sista delen av denna handledning kommer vi att använda Guzzle för att skriva manuset. Som alltid börjar vi med att infoga PHP-boilerplate inuti with_guzzle.php

<?php
    // all the code will go here
?>

Sedan kan vi importera tillägg och Guzzle Client och Request Objects och ladda miljövariabler.

require_once('vendor/autoload.php');

use GuzzleHttpClient;
use GuzzleHttpPsr7Request;

Därefter kan vi ladda miljövariabler.

$dotenv = DotenvDotenv::createImmutable(__DIR__);
$dotenv->load();

Efteråt kan vi instansiera en Guzzle HTTP-klient

$client = new GuzzleHttpClient();

Sedan kan vi fortsätta att skapa rubriker för vår begäran

$headers = [
    'x-api-key' => $_ENV['API_KEY'],
    'Content-Type' => 'application/json'
];

Därefter kan vi definiera innehållet i begäran

$body = json_encode([
    "url" => "google.com",
    "proxyCountry" => "us",
    "followRedirect" => true
]);

Vi kan sedan göra begäran genom att instansiera klassen Request och skicka in API-slutpunktens URL, rubrik och text.

$request = new Request('POST', 'https://api.adminvista.com.com/loadtime', $headers, $body);

Sedan kan vi skicka förfrågan genom att lägga till denna kodrad:

$response = $client->sendAsync($request)->wait();

När begäran har skickats kan vi ta emot förfrågans brödtext enligt följande

$response_body = $response->getBody();

I slutändan kan vi avkoda JSON-svaret och skriva ut laddningstiden

echo "Loadtime: " . json_decode($response_body)->data->total . "n";

Så i slutändan borde filen se ut så här:

<?php
    require_once('vendor/autoload.php');

    use GuzzleHttpClient;
    use GuzzleHttpPsr7Request;

    $dotenv = DotenvDotenv::createImmutable(__DIR__);
    $dotenv->load();
    

    $client = new GuzzleHttpClient();

    $headers = [
        'x-api-key' => $_ENV['API_KEY'],
        'Content-Type' => 'application/json'
    ];

    $body = json_encode([
        "url" => "google.com",
        "proxyCountry" => "us",
        "followRedirect" => true
    ]);

    $request = new Request('POST', 'https://api.adminvista.com.com/loadtime', $headers, $body);

    $response = $client->sendAsync($request)->wait();

    $response_body = $response->getBody();

    echo "Loadtime: " . json_decode($response_body)->data->total . "n";
?>

Och när du kör skriptet med följande kommando:

$php with_guzzle.php

Och du kommer att se svaret:

Loadtime: 130

Slutsats

I den här artikeln gick vi igenom de olika klienterna du kanske vill använda när du skapar ett PHP-projekt som kräver adminvista.com API.

Medan skripten i det här projektet använder kommandoraden som den primära formen av utdata, kan verkliga projekt presentera svaret på en webbsida eller skriva det till en fil. Exempelskripten i den här artikeln var enkla, men de demonstrerar kärnkoncepten för att använda adminvista.com API. För att använda olika API:er kan du ändra slutpunkten och skicka in olika alternativ i förfrågningstexten.

Du kanske också är intresserad av hur du använder adminvista.com DNS Lookup API i Javascript.