# SDK JavaScript / TypeScript

Source : https://webgune.cloud/de-de/docs/sdk-js · Mis à jour le 2026-10-27

# SDK JavaScript / TypeScript

`@webgune/sdk` ist der offizielle Client, um Ihr webgune-Konto per Code zu steuern. Sie ist eine typisierte Alternative zu rohen `fetch`-Aufrufen an die [REST-API](/docs/reference-api).

## Installation

```bash
npm install @webgune/sdk
```

## Verwendung

```ts
import { createClient } from "@webgune/sdk";

const webgune = createClient({ apiKey: process.env.WEBGUNE_API_KEY! });

const projects = await webgune.projects.list();
await webgune.services.redeploy("svc_123");
```

Der API-Schlüssel wird über **Dashboard → Entwickler → API-Schlüssel** erstellt (siehe [API-Schlüssel](/docs/cles-api)). Geben Sie dem Schlüssel einen Scope je verwendeter Ressource (`projects`, `services`, `domains`, `billing`, `dashboard`, `apikeys`, `reseller`), im Format `ressource:read` oder `ressource:write`.

## Abgedeckte Ressourcen

```text
webgune.projects   list · get · create · update · remove
webgune.services   listByProject · get · create · remove · redeploy
                    logs · metrics · getEnv · setEnv · scale
                    deployments · rollback
webgune.domains    check · list · register · get · remove
                    listDns · addDns · removeDns
webgune.billing    plans · subscription · invoices
webgune.dashboard  stats · deploymentHistory
webgune.apiKeys    list · create · revoke · auditLog
webgune.reseller   organization · subClients · overview
```

Ein noch nicht durch einen Wrapper abgedeckter Endpunkt bleibt über `webgune.raw` zugänglich, den zugrunde liegenden, vollständig typisierten [openapi-fetch](https://openapi-ts.dev/openapi-fetch/)-Client:

```ts
const { data } = await webgune.raw.GET("/services/{id}/k8s-status", {
  params: { path: { id: "svc_123" } },
});
```

## Fehlerbehandlung

Jede Nicht-2xx-Antwort wirft einen `WebguneApiError` (`status`, `code`, `message`), statt stillschweigend einen falschen Wert zurückzugeben:

```ts
import { WebguneApiError } from "@webgune/sdk";

try {
  await webgune.services.redeploy("nicht-existierende-id");
} catch (err) {
  if (err instanceof WebguneApiError && err.status === 404) {
    console.error("Dienst nicht gefunden");
  }
}
```

## Generierte Typen

Die TypeScript-Typen werden automatisch aus dem [OpenAPI-Spec](/api/v1/openapi.json) der API generiert. Sie spiegeln stets wider, was die API akzeptiert und zurückgibt, ohne manuelle Pflege. Ohne installiertes Package zeigt die [interaktive Referenz](/developers/api-reference) dieselben Schemas direkt im Browser.
