Skip to content

Başlangıç ​

Gereksinimler ​

  • Node.js 18+ — Kütüphane, Node.js Native Fetch API üzerine inşa edilmiştir. Polyfill gerekmez.
  • TypeScript 4.7+ — Generic'lerle tam tip güvenliği için önerilir. Kütüphane kendi .d.ts tanımlarıyla birlikte gelir.

Kurulum ​

sh
npm install @yildizpay/http-adapter
sh
yarn add @yildizpay/http-adapter
sh
pnpm add @yildizpay/http-adapter

Hızlı Başlangıç ​

Adapter oluşturun, istek inşa edin, gönderin:

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

// 1. Adapter'ı oluştur
const adapter = HttpAdapter.builder().build();

// 2. İsteği inşa et
const request = new RequestBuilder('https://jsonplaceholder.typicode.com')
  .setEndpoint('/users/1')
  .setMethod(HttpMethod.GET)
  .build();

// 3. Gönder ve tipli yanıtı al
interface Kullanici {
  id: number;
  name: string;
  email: string;
}

const response = await adapter.send<Kullanici>(request);
console.log(response.data.name); // "Leanne Graham"

Gerçekçi Kurulum ​

Üretimde genellikle interceptor'lar, retry politikası ve circuit breaker eklersiniz:

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

export const apiAdapter = HttpAdapter.builder()
  .withInterceptor(new AuthInterceptor(), new LoggingInterceptor())
  .withRetryPolicy(RetryPolicies.exponential(3))
  .withCircuitBreaker({
    failureThreshold: 5,
    resetTimeoutMs: 30_000,
    successThreshold: 1,
  })
  .withCorrelationId()
  .build();

Adapter'ı bir kez oluşturun (örneğin bir servis modülünde singleton olarak) ve istekler arasında yeniden kullanın. Adapter örnekleri, bireysel istekler açısından durumsuz (stateless) tasarlanmıştır.

Builder API ve create() Karşılaştırması ​

HttpAdapter oluşturmanın iki yolu vardır:

typescript
// Builder API — önerilir, okunabilir ve keşfedilebilir
const adapter = HttpAdapter.builder()
  .withRetryPolicy(RetryPolicies.exponential(3))
  .build();

// Factory fonksiyonu — tüm seçenekler bir config nesnesinden geldiğinde kullanışlı
const adapter = HttpAdapter.create(
  [new AuthInterceptor()],
  RetryPolicies.exponential(3),
  undefined,           // opsiyonel özel HTTP istemcisi
  new CircuitBreaker({ failureThreshold: 5, resetTimeoutMs: 60_000 }),
);

Builder API'yi tercih edin — daha açık ve genişletmesi kolaydır.

Sıradaki Adımlar ​

Released under the MIT License.