Siirry dokumentaation sisältöön

PHP SDK

PSR-standardeihin perustuva Composer-paketti.

Tässä oppaassa
  1. 1Ymmärrä pakettisopimus
  2. 2Aja tai jatka töitä
  3. 3Käsittele idiomaattiset virheet
  4. 4Varmenna webhookit
Tässä oppaassa
  1. 1Ymmärrä pakettisopimus
  2. 2Aja tai jatka töitä
  3. 3Käsittele idiomaattiset virheet
  4. 4Varmenna webhookit

Pakettisopimus

Suunniteltu Composer-paketti on nordicdevhouse/sdk nimiavaruudessa NordicDevhouse\Sdk. Se noudattaa PSR-4:ää, hyväksyy PSR-18-siirron ja tarjoaa muuttumattomat arvo-objektit.

JakelupakettiNimiavaruus tai importAjonaikainen tuki
nordicdevhouse/sdkNordicDevhouse\SdkPHP 8.2+ ja PSR-yhteensopivat ympäristöt

Luo asiakas ja käytä sitä uudelleen

Asiakas ei riipu frameworkista. Tehdas löytää asennetut PSR-toteutukset, ja eksplisiittinen konstruktorinjektio pitää siirron ja kellon testattavina.

PHP
use NordicDevhouse\Sdk\Client;
use NordicDevhouse\Sdk\ScrapeRequest;

$client = Client::fromApiKey(
    $_ENV['NORDIC_DEVHOUSE_API_KEY'],
    maxRetries: 3,
);

$result = $client->scrape()->run(new ScrapeRequest(
    url: 'https://example.com/products',
    formats: ['json'],
    idempotencyKey: 'catalog-2026-08-11',
));

echo $result->jobId;

Hallitse kestävää työtä

Start ja wait mallintavat kestävän asynkronisen palvelintyön ilman promise-pakkoa julkisessa rajapinnassa. Jonoworkerit tallentavat palautetun työtunnisteen kutsujen välissä.

PHP
$job = $client->scrape()->start(new ScrapeRequest(
    url: 'https://example.com/products',
    formats: ['json'],
));

$result = $client->jobs()->wait(
    id: $job->id,
    timeout: new DateInterval('PT10M'),
);

Julkiset mallit

Nimet noudattavat kielen käytäntöjä, mutta kaikki SDK:t säilyttävät samat kentät ja työn tilojen semantiikan.

KäsiteSopimus
Asiakkaan asetuksetAPI-avain, perusosoite, aikakatkaisu, retry-raja ja valinnainen testisiirto
KeräyspyyntöURL, tulosmuodot, webhook-osoite, metatiedot ja idempotenssiavain
TyöVakaa tunniste, tila, aikaleimat, edistyminen ja varoitukset
Työn tulosTyötunniste, tietuemäärä, tyypitetty data, metatiedot ja pyyntötunniste
Webhook-tapahtumaVarmennettu tapahtumatunniste, tyyppi, aikaleima ja tyypitetty data

Käsittele virheet idiomaattisesti

Tyypitetyt poikkeukset toteuttavat yhteisen NordicDevhouseException-rajapinnan. Uudelleen yritettävät poikkeukset tarjoavat Retry-After-arvon DateIntervalina ja validointivirheet kentittäin.

PHP
try {
    return $client->scrape()->run($request);
} catch (RateLimitException $error) {
    $logger->warning('Rate limited', [
        'request_id' => $error->requestId,
        'retry_after' => $error->retryAfter,
    ]);
    throw $error;
} catch (ValidationException $error) {
    return validationResponse($error->issues);
} catch (NordicDevhouseException $error) {
    $logger->error('SDK failure', ['request_id' => $error->requestId]);
    throw $error;
}

Varmenna raaka webhook-runko

Varmennus käyttää täsmälleen vastaanotettuja tavuja, tarkistaa HMAC-SHA256-allekirjoituksen ja aikaleiman sallitun eron ja palauttaa tyypitetyn tapahtuman. Tallenna varmennettu tapahtumatunniste kaksoiskäsittelyn estämiseksi.

PHP
$event = $client->webhooks()->verify(
    payload: (string) $request->getBody(),
    signature: $request->getHeaderLine('Nordic-Signature'),
    secret: $_ENV['NORDIC_WEBHOOK_SECRET'],
);

if ($event->type === 'scrape.completed') {
    importResult($event->data->jobId);
}

Ajonaikaiset ja elinkaaren säännöt

  1. 1
    Vaadi PHP 8.2 ja strict types paketin lähdekoodissa
  2. 2
    Noudata PSR-4:ää ja hyväksy PSR-18-, PSR-17- ja PSR-3-adapterit
  3. 3
    Pidä vastausobjektit muuttumattomina ja täysin annotoituina staattiseen analyysiin
  4. 4
    Älä vaadi Laravelia tai Symfonya ydinpaketissa
  5. 5
    Julkaise framework-providerit ohuina valinnaisina adaptereina
Oliko tästä sivusta apua?