Trumpas vadovas, kaip dirbti su NDJSON kanalais

Duomenų šaltinis: https://myfusion.eu/api/products/full-export

Failo formatas: NDJSON (naujos eilutės simboliais atskirtas JSON).

Svarbu! Naudokite šį failą tik pirmajam produktų importavimui. Vėliau naudokite pilną API integraciją: https://myfusion.eu/api

Tai reiškia:

  • 1 eilutė = 1 produktas
  • kiekviena eilutė yra atskiras JSON objektas
  • failą reikia skaityti kaip srautą, o ne įkelti viso į atmintį

Autorizacija

Naudojamas Bearer Token. Užklausos antraštė: Authorization: Bearer YOUR_API_TOKEN

Kodėl NDJSON yra geriau už įprastą JSON?

  • greitas didelių failų skaitymas
  • galima apdoroti dalimis
  • minimalus atminties sunaudojimas
  • tinka labai didelių duomenų kiekių importavimui

Svarbiausias principas

Neteisingai:

 
 
php
file_get_contents(...);
json_decode(...);

Tai įkels visą failą į atmintį.

Teisingai: skaitykite failą eilutė po eilutės arba per srautą.

PHP pavyzdys

 
 
php
<?php
$url = 'https://myfusion.eu/api/products/full-export';
$token = 'YOUR_API_TOKEN';

$context = stream_context_create([
    'http' => [
        'method' => 'GET',
        'header' => "Authorization: Bearer {$token}\r\n"
    ]
]);

$handle = fopen($url, 'r', false, $context);

while (($line = fgets($handle)) !== false) {
    $row = json_decode($line, true);
    // produkto apdorojimas
    echo $row['productId'] . PHP_EOL;
}

fclose($handle);

Rekomenduojama importavimo praktika

Dideliam greičiui rekomenduojama:

  • skaityti duomenis kaip srautą
  • apdoroti įrašus paketais
  • naudoti batch insert arba batch update
  • nesaugoti kiekvieno įrašo atskira užklausa, jei to nereikia

Duomenų atnaujinimas

Naudokite lauką descriptionUpdateDate. Jis nurodo paskutinio aprašymo modifikavimo datą ir leidžia atnaujinti tik pakeistus produktus.