v0.1 ilkin inkişaf versiyasını oxuyursunuz. API-lər dəyişə bilər.
~ 3 dəq oxuYenilənib: 2026-10-30

Xarici API-lər üçün HTTP müştərisi

Partnyor API-ləri üçün konteynerdən verilən Elang\Http\Client\Client istifadə edin. İlk nümunə xarici xidmət olmadan işləyir: cavabı fake transport qaytarır.

İşlək nümunə

use Elang\Http\Client\{Client, FakeTransport, Response};

$fake = (new FakeTransport())->when(
    'https://partner.example.test/stock*',
    new Response(200, '{"data":{"quantity":12}}'),
);
$http = new Client($fake);
$quantity = $http->baseUrl('https://partner.example.test')
    ->timeout(10)->retry(3, 100)
    ->get('/stock', ['sku' => 'A-100'])
    ->throw()->json('data.quantity'); // 12
$fake->assertSentCount(1);

Partnyor ayarları

Real inteqrasiyada fake yaratmaq əvəzinə kontrollerə Client verin. Baza URL-ni server konfiqurasiyasında saxlayın, məxfi açarı Config::secret() ilə oxuyun. withToken və withHeaders həmin inteqrasiya üçün ayrıca sorğu konfiqurasiyası qaytarır; ortaq Client başqa sorğulara bu açarı daşımır. Baza URL-dən başqa origin-ə keçid rədd edilir.

Limitlər və xətalar

Standartlar: TLS yoxlaması aktivdir, yönləndirmə və cookie deaktivdir; sorğu/oxuma limiti 10 saniyə, qoşulma limiti 5 saniyə, cavab həddi 8 MiB-dir. Limitləri iş yükünə uyğunlaşdırın. Stream və cURL handler qoşulma limitini fərqli tətbiq edə bilər. throw() 4xx/5xx üçün yalnız status göstərən RequestException yaradır; JSON gözləyəndə json() çağırın.

Təkrar cəhdlər və fake sorğular

retry(3, 100) cəmi üç cəhd və 100 ms fasilə deməkdir. Standartda yalnız GET, HEAD və OPTIONS qoşulma xətası və 429/502/503/504 zamanı təkrarlanır. Yazını təkrarlamaq üçün retryUnsafe: true və tətbiq səviyyəsində idempotentlik lazımdır. Retry-After on saniyədən böyükdürsə erkən təkrar əvəzinə cavab qaytarılır. Fake üçün gözlənilməyən sorğu şəbəkəyə çıxmadan xəta verir. İstifadəçi girişindən yoxlanılmamış server URL-i yaratmayın.

Birlikdə yoxlayın

ORM quraşdırılmış tətbiqdə tam kataloq nümunəsini işlədin. Müvəqqəti yaddaş bazası və fake partnyor API istifadə olunur. Nəticədə "checks":"passed" görünməlidir. Nümunə entity əlaqələri, fetch join, resurs, kolleksiya və HTTP/kernel yoxlamalarını birləşdirir.

php vendor/elang/framework/examples/orm-catalog/run.php

Növbəti addım · GitHub: complete runnable source

Tez-tez edilən səhvlər

Əlamət Düzəliş
Gözlənilməyən fake sorğu Tam URL-ni və ya query parametrlərini nəzərə alan wildcard qeydiyyatdan keçirin.
429 və uzun Retry-After Tapşırığı sonrakı vaxta planlaşdırın; tələb olunan fasiləni qısaltmayın.
Kömək lazımdır?

Yoxlayın: problemlərin həlli bələdçisi, termini burada axtarın: terminlər lüğəti, yaxud bunu addım-addım tamamlayın: tam tapşırıq lövhəsi layihəsi.

Elang sənədlərində axtar

Növbəti addımınızı tapmaq üçün yazmağa başlayın.