SDK kullanımı

İki okuma SDK'sı yayınlanır: Errorbird.Client (NuGet) ve @errorbird/client (npm). İkisi de yalnızca okuma yapar; yazma yolu HTTP'dir ve mevcut log altyapınız tarafından yapılır.

.NET — Errorbird.Client

dotnet add package Errorbird.Client
builder.Services.AddErrorbirdClient(options =>
{
    options.ApiKey = builder.Configuration["Errorbird:ApiKey"]!;
    options.ProjectId = Guid.Parse(builder.Configuration["Errorbird:ProjectId"]!);
});

Kullanımı üç satırdır:

app.MapGet("/panel", async (IErrorbirdReadClient errorbird, CancellationToken ct) =>
{
    var summary = await errorbird.GetSummaryAsync(ct);
    var issues = await errorbird.ListIssuesAsync(new IssueListQuery(Limit: 10), ct);

    return Results.Ok(new { summary, issues.Items });
});

Çalışan referans uygulama depoda: samples/Errorbird.Sample.AdminPanel.

Yüzey

Metot Karşılığı
GetSummaryAsync() /projects/{id}/summary
ListIssuesAsync(query) /projects/{id}/issues
ListIssueEventsAsync(issueId, cursor, limit) /issues/{id}/events
SearchLogsAsync(query) /projects/{id}/events
GetUptimeAsync(monitorId, days) /monitors/{id}/uptime
GetSslStatusAsync(monitorId) /monitors/{id}/ssl-status
GetDomainStatusAsync(monitorId) /monitors/{id}/domain-status

Hatalar ErrorbirdApiException olarak gelir ve StatusCode ile Code alanlarını taşır; panelinizin "kota doldu" ile "anahtar geçersiz"i ayırt etmesi için metin ayrıştırmaya gerek yoktur.

JavaScript / TypeScript — @errorbird/client

npm install @errorbird/client
import { ErrorbirdClient } from '@errorbird/client'

const errorbird = new ErrorbirdClient({
  apiKey: 'ebrd_pub_…',
  projectId: '01a01b…',
})

const summary = await errorbird.getSummary()
const issues = await errorbird.getIssues({ limit: 10, status: 'Unresolved' })

Tüm metotlar AbortSignal kabul eder; bileşen söküldüğünde isteği iptal etmek React uygulamalarında sızıntıyı önler:

useEffect(() => {
  const controller = new AbortController()

  errorbird.getSummary(controller.signal).then(setSummary).catch(() => {})

  return () => controller.abort()
}, [])

Canlı akış

const stop = errorbird.stream({
  onEvent: (event) => console.log(event.message),
  onError: () => console.warn('Akış koptu; otomatik yeniden bağlanacak'),
})

// Bileşen sökülürken
stop()

Anahtar seçimi

Tarayıcıda çalışan kodda her zaman publishable anahtar kullanın. Secret anahtar sunucu tarafındadır: derlenmiş JavaScript paketine giren bir secret anahtar, proje adına sahte veri yazma yetkisi demektir.

Publishable anahtarın alan adı listesi bu yüzden zorunludur — Errorbird, listesiz publishable anahtar üretilmesine izin vermez.

Sürümler ve kırıcı değişiklikler

SDK'lar API'nin v1 sürümüne bağlıdır. Yeni alanlar minör sürümlerle eklenir; SDK'nın bilmediği alanlar sessizce yok sayılır. Bir alanın kaldırılması yalnızca yeni bir API sürümüyle olur.