# SDK JavaScript / TypeScript

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

# SDK JavaScript / TypeScript

`@webgune/sdk` est le client officiel pour piloter votre compte webgune depuis du code. C'est une alternative typée aux appels `fetch` bruts sur l'[API REST](/docs/reference-api).

## Installation

```bash
npm install @webgune/sdk
```

## Utilisation

```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");
```

La clé API se crée depuis **Dashboard → Développeurs → Clés API** (voir [Clés API](/docs/cles-api)). Donnez à la clé un scope par ressource utilisée (`projects`, `services`, `domains`, `billing`, `dashboard`, `apikeys`, `reseller`), au format `ressource:read` ou `ressource:write`.

## Ressources couvertes

```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
```

Un endpoint pas encore couvert par un wrapper reste accessible via `webgune.raw`, le client [openapi-fetch](https://openapi-ts.dev/openapi-fetch/) entièrement typé sous-jacent :

```ts
const { data } = await webgune.raw.GET("/services/{id}/k8s-status", {
  params: { path: { id: "svc_123" } },
});
```

## Gestion des erreurs

Toute réponse non-2xx lève une `WebguneApiError` (`status`, `code`, `message`) au lieu de renvoyer silencieusement une valeur incorrecte :

```ts
import { WebguneApiError } from "@webgune/sdk";

try {
  await webgune.services.redeploy("id-inexistant");
} catch (err) {
  if (err instanceof WebguneApiError && err.status === 404) {
    console.error("Service introuvable");
  }
}
```

## Types générés

Les types TypeScript sont générés automatiquement depuis le [spec OpenAPI](/api/v1/openapi.json) de l'API. Ils reflètent toujours ce que l'API accepte et renvoie, sans maintenance manuelle. Sans package installé, la [référence interactive](/developers/api-reference) montre les mêmes schémas directement dans le navigateur.
