@cosmosapp/pay_sdkServer

Fehlerbehandlung & Observability

Die Fehlerklassen, die das SDK wirft, sein Wiederholungsverhalten und die Telemetrie-Ereignisse, an die Sie sich anhängen können.

Alles, was das SDK werfen kann, ist ein typisierter Fehler, den Sie abfangen können, und jeder Netzwerkaufruf gibt Telemetrie aus, die Sie beobachten können.

Fehler

import { CosmosPayAPIError, CosmosPayRequestError } from '@cosmosapp/pay_sdk';

try {
  await client.paymentIntents.fetch('missing');
} catch (err) {
  if (err instanceof CosmosPayAPIError) {
    // server responded with an error status
    console.error(err.status, err.code, err.body); // e.g. 404
  } else if (err instanceof CosmosPayRequestError) {
    // no usable response (network / TLS / timeout / offline)
    console.error('Network/timeout:', err.cause);
  } else {
    throw err;
  }
}
  • CosmosPayAPIError: Die API hat mit 4xx/5xx geantwortet. Felder: status, code, body.
  • CosmosPayRequestError: Die Anfrage wurde nie abgeschlossen. Feld: cause.
  • Der Web-Client ergänzt: CosmosPayWebError, WalletNotFoundError, WalletError (vom Nutzer abgelehnt / gesperrt), StellarSdkRequiredError, IntentError. Die API- Fehlerklassen werden auch von /web re-exportiert, sodass catch über alle Einstiegspunkte hinweg funktioniert.
  • Webhook-Signaturfehler werfen WebhookSignatureError.

Wiederholungen

Vorübergehende Fehler (Netzwerkfehler, 408, 429, 5xx) werden automatisch wiederholt (standardmäßig 2 Wiederholungen, unter Beachtung von Retry-After). Anpassbar über new Client({ retries, timeout }).

Observability

Der Client gibt REST-Telemetrie erneut aus:

client.on('request',     ({ method, url, attempt }) => {});
client.on('response',    ({ method, url, status, attempt }) => {});
client.on('rateLimited', ({ method, url, attempt }) => {});
client.on('debug',       (message) => {});

Binden Sie diese in Ihren Logger/APM ein, um jede Anfrage zu verfolgen oder zu messen.

Referenzen

  • REST: Die HTTP-Schicht
  • Client: Der Haupteinstiegspunkt des SDK. Ein einzelner, atomarer Client, der jede Ressource über ihren eigenen Manager bereitstellt (ein atomares Single-Client-Design).
  • WebhookSignatureError: Wird geworfen, wenn eine Webhook-Signatur die Verifizierung nicht besteht.
  • CosmosPayWebError: Basisklasse für jeden Fehler, der von @cosmosapp/pay_sdk/web geworfen wird.
  • WalletNotFoundError: In der aktuellen Umgebung konnte kein kompatibles Stellar-Wallet erkannt werden.
  • WalletError: Ein Wallet wurde gefunden, aber die Operation schlug fehl (vom Nutzer abgelehnt, gesperrt usw.).
  • StellarSdkRequiredError: Das Erstellen einer pay-Transaktion (oder das Übermitteln an Horizon) erfordert das Stellar-SDK, das eine optionale Peer-Abhängigkeit ist
  • IntentError: Die Absicht / SEP-7-Anfrage konnte nicht interpretiert werden oder es fehlen Daten.

Auf dieser Seite