# SDK JavaScript / TypeScript

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

# SDK JavaScript / TypeScript

`@webgune/sdk` es el cliente oficial para controlar tu cuenta webgune desde código. Es una alternativa tipada a las llamadas `fetch` directas sobre la [API REST](/docs/reference-api).

## Instalación

```bash
npm install @webgune/sdk
```

## Uso

```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 clave de API se crea desde **Dashboard → Desarrolladores → Claves de API** (ver [Claves de API](/docs/cles-api)). Asigna a la clave un scope por recurso usado (`projects`, `services`, `domains`, `billing`, `dashboard`, `apikeys`, `reseller`), en formato `recurso:read` o `recurso:write`.

## Recursos cubiertos

```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 aún no cubierto por un wrapper sigue siendo accesible mediante `webgune.raw`, el cliente [openapi-fetch](https://openapi-ts.dev/openapi-fetch/) totalmente tipado subyacente:

```ts
const { data } = await webgune.raw.GET("/services/{id}/k8s-status", {
  params: { path: { id: "svc_123" } },
});
```

## Gestión de errores

Toda respuesta que no sea 2xx lanza un `WebguneApiError` (`status`, `code`, `message`) en lugar de devolver silenciosamente un valor incorrecto:

```ts
import { WebguneApiError } from "@webgune/sdk";

try {
  await webgune.services.redeploy("id-inexistente");
} catch (err) {
  if (err instanceof WebguneApiError && err.status === 404) {
    console.error("Servicio no encontrado");
  }
}
```

## Tipos generados

Los tipos de TypeScript se generan automáticamente desde el [spec OpenAPI](/api/v1/openapi.json) de la API. Siempre reflejan lo que la API acepta y devuelve, sin mantenimiento manual. Sin paquete instalado, la [referencia interactiva](/developers/api-reference) muestra los mismos esquemas directamente en el navegador.
