Skip to content

@yildizpay/http-adapterNode.js için kurumsal seviye HTTP istemcisi

Sıfır bağımlılık. Tam tip güvenliği. Native Fetch API üzerine inşa edilmiş savaşta sınanmış dayanıklılık desenleri.

@yildizpay/http-adapter

Çalışırken Görün

typescript
import { HttpAdapter, RetryPolicies } from '@yildizpay/http-adapter';

const adapter = HttpAdapter.builder()
  .withInterceptor(new AuthInterceptor(), new LoggingInterceptor())
  .withRetryPolicy(RetryPolicies.exponential(3))
  .withCircuitBreaker({ failureThreshold: 5, resetTimeoutMs: 30_000 })
  .withCorrelationId()
  .build();
typescript
import { RequestBuilder, HttpMethod } from '@yildizpay/http-adapter';

const request = new RequestBuilder('https://api.odeme.com')
  .setEndpoint('/v1/odeme')
  .setMethod(HttpMethod.POST)
  .setBody({ tutar: 1000, para_birimi: 'TRY' })
  .build();
typescript
import {
  TooManyRequestsException,
  CircuitBreakerOpenException,
  NetworkException,
} from '@yildizpay/http-adapter';

try {
  const response = await adapter.send<OdemeYaniti>(request);
  console.log('Ödeme ID:', response.data.id);
} catch (error) {
  if (error instanceof TooManyRequestsException) {
    console.warn(`İstek limiti aşıldı. ${error.getRetryAfterMs()}ms sonra tekrar deneyin`);
  } else if (error instanceof CircuitBreakerOpenException) {
    console.error('Ödeme servisi kullanılamıyor. Hızlı başarısız oluyor.');
  } else if (error instanceof NetworkException) {
    console.error('Ağ hatası:', error.toJSON());
  }
}
typescript
import { MockHttpAdapter } from '@yildizpay/http-adapter/testing';

const adapter = new MockHttpAdapter();

adapter
  .onEndpoint('/v1/odeme')
  .mockResolvedValue({ id: 'odeme_123', durum: 'basarili' });

await odemeServisi.isle(siparis);

adapter.assertCalledWith('/v1/odeme', { method: HttpMethod.POST });
adapter.assertCalledTimes(1);

Neden @yildizpay/http-adapter?

Yalnızca fetch'i sarmakla kalmaz — üretim Node.js uygulamalarında servisler arası iletişimin gerçek zorluklarına karşı inşa edilmiştir.

Ham Fetchaxios@yildizpay/http-adapter
HTTP durum koduna özel typed exception
Yerleşik Circuit Breaker
İstek bazlı retry/circuit geçersiz kılma
Yanıt doğrulama hook'ları
Hatalarda isRetryable() sinyali
Tüm hatalarda yapılandırılmış toJSON()
Birinci sınıf test araçları
Sıfır üretim bağımlılığı
Node.js Native Fetch üzerinde çalışır

Released under the MIT License.