Īsa pamācība darbam ar NDJSON plūsmām

Datu avots: https://myfusion.eu/api/products/full-export

Faila formāts: NDJSON (ar jaunās rindas simbolu atdalīts JSON).

Svarīgi! Izmantojiet šo failu tikai pirmajai produktu importēšanai. Pēc tam izmantojiet pilno API integrāciju: https://myfusion.eu/api

Tas nozīmē:

  • 1 rinda = 1 produkts
  • katra rinda ir atsevišķs JSON objekts
  • fails jālasa kā plūsma, nevis pilnībā jāielādē atmiņā

Autorizācija

Tiek izmantots Bearer Token. Pieprasījuma galvene: Authorization: Bearer YOUR_API_TOKEN

Kāpēc NDJSON ir labāks par parasto JSON?

  • ātra lielu failu lasīšana
  • iespēja apstrādāt pa daļām
  • minimāls atmiņas patēriņš
  • piemērots ļoti lielu datu apjomu importēšanai

Vissvarīgākais princips

Nepareizi:

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

Tas ielādēs visu failu atmiņā.

Pareizi: lasiet failu rindu pa rindai vai caur plūsmu.

PHP piemērs

 
 
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);
    // produkta apstrāde
    echo $row['productId'] . PHP_EOL;
}

fclose($handle);

Ieteicamais imports

Lielākam ātrumam ieteicams:

  • lasīt datus kā plūsmu
  • apstrādāt ierakstus partijās
  • izmantot batch insert vai batch update
  • neveidot atsevišķu vaicājumu katram ierakstam, ja vien tas nav nepieciešams

Datu atjaunināšana

Izmantojiet lauku descriptionUpdateDate. Tas norāda apraksta pēdējās modifikācijas datumu, un to var izmantot, lai atjauninātu tikai mainītos produktus.