DigitalOcean API Nutzung: Cloud Infrastruktur Entwickler Anleitung

Ashley Innocent

Ashley Innocent

24 March 2026

DigitalOcean API Nutzung: Cloud Infrastruktur Entwickler Anleitung

Apidog für Unternehmen

On-Premises-Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

TL;DR

DigitalOcean APIs verwalten Droplets, Volumes, Firewalls, Load Balancer, Kubernetes-Cluster und vieles mehr. Authentifizieren Sie sich mit persönlichen Zugriffstokens, rufen Sie `api.digitalocean.com/v2` auf und berücksichtigen Sie Ratenbegrenzungen. Für Tests verwenden Sie Apidog, um Konfigurationen zu validieren, die Bereitstellung der Infrastruktur zu testen und Ihre Automatisierungs-Workflows zu dokumentieren.

Einführung

DigitalOcean vereinfacht Cloud Computing. Während AWS und GCP Hunderte von Diensten anbieten, konzentriert sich DigitalOcean auf das Wesentliche: Compute (Droplets), Speicher (Volumes), Networking (Floating IPs, Firewalls), verwaltetes Kubernetes und die App-Plattform. Die API spiegelt diese Einfachheit wider.

Entwickler nutzen die API von DigitalOcean für:

💡
Wenn Sie Infrastruktur automatisieren, hilft Apidog Ihnen, API-Aufrufe zu testen, Infrastrukturkonfigurationen als wiederverwendbare Vorlagen zu speichern und mit Ihrem Team an Bereitstellungs-Workflows zusammenzuarbeiten.
App herunterladen

Authentifizierung

Persönliche Zugriffstokens

  1. Gehen Sie zu DigitalOcean Dashboard → API → Neues Token generieren
  2. Benennen Sie das Token und legen Sie die Gültigkeitsdauer fest
  3. Kopieren und sicher speichern

Verwendung des Tokens:

curl -X GET "https://api.digitalocean.com/v2/account" \
  -H "Authorization: Bearer YOUR_TOKEN"

Antwortformat

{
  "account": {
    "droplet_limit": 25,
    "email": "you@example.com",
    "name": "Your Name",
    "uuid": "abc123xyz",
    "email_verified": true,
    "status": "active"
  }
}

Droplets (virtuelle Maschinen)

Alle Droplets auflisten

curl -X GET "https://api.digitalocean.com/v2/droplets" \
  -H "Authorization: Bearer YOUR_TOKEN"

Ein Droplet erstellen

curl -X POST "https://api.digitalocean.com/v2/droplets" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-droplet",
    "region": "nyc1",
    "size": "s-2vcpu-4gb",
    "image": "ubuntu-20-04-x64",
    "ssh_keys": ["ssh-rsa AAAA..."],
    "backups": false,
    "ipv6": true,
    "tags": ["web", "production"]
  }'

Beliebte Größen:

Regionen:

Droplet-Details abrufen

curl -X GET "https://api.digitalocean.com/v2/droplets/DROPLET_ID" \
  -H "Authorization: Bearer YOUR_TOKEN"

Ein Droplet löschen

curl -X DELETE "https://api.digitalocean.com/v2/droplets/DROPLET_ID" \
  -H "Authorization: Bearer YOUR_TOKEN"

Droplet-Aktionen

Neustart:

curl -X POST "https://api.digitalocean.com/v2/droplets/DROPLET_ID/actions" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "reboot"
  }'

Größe ändern:

curl -X POST "https://api.digitalocean.com/v2/droplets/DROPLET_ID/actions" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "resize",
    "size": "s-4vcpu-8gb"
  }'

Snapshot:

curl -X POST "https://api.digitalocean.com/v2/droplets/DROPLET_ID/actions" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "snapshot",
    "name": "my-snapshot"
  }'

Volumes (Block-Speicher)

Ein Volume erstellen

curl -X POST "https://api.digitalocean.com/v2/volumes" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "size_gigabytes": 100,
    "name": "my-volume",
    "region": "nyc1",
    "description": "Data volume for web servers"
  }'

Volume an Droplet anhängen

curl -X POST "https://api.digitalocean.com/v2/volumes/VOLUME_ID/actions" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "attach",
    "droplet_id": DROPLET_ID
  }'

Volumes auflisten

curl -X GET "https://api.digitalocean.com/v2/volumes" \
  -H "Authorization: Bearer YOUR_TOKEN"

Netzwerk

Floating IPs auflisten

curl -X GET "https://api.digitalocean.com/v2/floating_ips" \
  -H "Authorization: Bearer YOUR_TOKEN"

Floating IP zuweisen

curl -X POST "https://api.digitalocean.com/v2/floating_ips" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "droplet_id": DROPLET_ID,
    "region": "nyc1"
  }'

Firewall erstellen

curl -X POST "https://api.digitalocean.com/v2/firewalls" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "web-firewall",
    "inbound_rules": [
      {
        "protocol": "tcp",
        "ports": "80",
        "sources": {
          "addresses": ["0.0.0.0/0"]
        }
      },
      {
        "protocol": "tcp",
        "ports": "443",
        "sources": {
          "addresses": ["0.0.0.0/0"]
        }
      },
      {
        "protocol": "tcp",
        "ports": "22",
        "sources": {
          "addresses": ["your-ip/32"]
        }
      }
    ],
    "outbound_rules": [
      {
        "protocol": "tcp",
        "ports": "80",
        "destinations": {
          "addresses": ["0.0.0.0/0"]
        }
      }
    ],
    "droplet_ids": [DROPLET_ID]
  }'

Load Balancer

Einen Load Balancer erstellen

curl -X POST "https://api.digitalocean.com/v2/load_balancers" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-lb",
    "region": "nyc1",
    "algorithm": "round_robin",
    "health_check": {
      "protocol": "http",
      "port": 80,
      "path": "/",
      "check_interval_seconds": 10,
      "response_timeout_seconds": 5,
      "healthy_threshold": 3,
      "unhealthy_threshold": 3
    },
    "forwarding_rules": [
      {
        "entry_protocol": "http",
        "entry_port": 80,
        "target_protocol": "http",
        "target_port": 80
      },
      {
        "entry_protocol": "https",
        "entry_port": 443,
        "target_protocol": "https",
        "target_port": 443,
        "tls_passthrough": true
      }
    ],
    "droplet_ids": [DROPLET_ID_1, DROPLET_ID_2]
  }'

Kubernetes-Cluster

Einen Kubernetes-Cluster erstellen

curl -X POST "https://api.digitalocean.com/v2/kubernetes/clusters" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-cluster",
    "region": "nyc1",
    "version": "1.28",
    "node_pools": [
      {
        "name": "worker-pool",
        "size": "s-2vcpu-4gb",
        "count": 3,
        "auto_scale": true,
        "min_nodes": 2,
        "max_nodes": 6
      }
    ]
  }'

Node-Pools auflisten

curl -X GET "https://api.digitalocean.com/v2/kubernetes/clusters/CLUSTER_ID/node_pools" \
  -H "Authorization: Bearer YOUR_TOKEN"

Node-Pool skalieren

curl -X PUT "https://api.digitalocean.com/v2/kubernetes/clusters/CLUSTER_ID/node_pools/POOL_ID" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "count": 5
  }'

Cluster löschen

curl -X DELETE "https://api.digitalocean.com/v2/kubernetes/clusters/CLUSTER_ID" \
  -H "Authorization: Bearer YOUR_TOKEN"

Testen mit Apidog

Die Bereitstellung von Infrastruktur ist kostspielig. Testen Sie gründlich, bevor Sie Ressourcen erstellen.

1. Umgebung einrichten

DIGITALOCEAN_TOKEN: your_token
BASE_URL: https://api.digitalocean.com/v2
DEFAULT_REGION: nyc1
DEFAULT_SIZE: s-2vcpu-4gb

2. Antworten validieren

pm.test('Droplet created successfully', () => {
  const response = pm.response.json()
  pm.expect(response.droplet).to.have.property('id')
  pm.expect(response.droplet.status).to.eql('new')
})

pm.test('Token is valid', () => {
  const response = pm.response.json()
  pm.expect(response.account).to.exist
  pm.expect(response.account.status).to.eql('active')
})

3. Dry-Run-Konzepte

DigitalOcean bietet keine echten Dry Runs, aber Sie können Eingaben validieren:

const validRegions = ['nyc1', 'sfo3', 'ams3', 'sgp1']
const validSizes = ['s-1vcpu-1gb', 's-2vcpu-2gb', 's-2vcpu-4gb']

pm.test('Region is valid', () => {
  const requestBody = JSON.parse(pm.request.body.raw)
  pm.expect(validRegions).to.include(requestBody.region)
})

pm.test('Size is valid', () => {
  const requestBody = JSON.parse(pm.request.body.raw)
  pm.expect(validSizes).to.include(requestBody.size)
})

Testen Sie DigitalOcean Infrastruktur-APIs mit Apidog - kostenlos

Häufige Fehler und Behebungen

401 Nicht autorisiert

Ursache: Ungültiges oder abgelaufenes Token.

Behebung: Generieren Sie Ihr Token im Dashboard neu. Überprüfen Sie das Format des Authorization-Headers.

422 Unverarbeitbare Entität

Ursache: Ungültige Parameter (falsche Region, Größe, Image usw.).

Behebung: Überprüfen Sie die API-Dokumentation von DigitalOcean auf gültige Werte. Häufige Probleme:

429 Zu viele Anfragen

Ursache: Ratenbegrenzung überschritten (standardmäßig 2000 Anfragen/Stunde).

Behebung: Backoff implementieren:

async function doRequest(url, options, retries = 3) {
  for (let i = 0; i < retries; i++) {
    const response = await fetch(url, options)
    if (response.status === 429) {
      await sleep(Math.pow(2, i) * 1000)
      continue
    }
    return response
  }
  throw new Error('Rate limited')
}

Droplet-Limit erreicht

Ursache: Konto hat zu viele Droplets.

Behebung: Löschen Sie ungenutzte Droplets oder bitten Sie den Support um eine Limiterhöhung.

Alternativen und Vergleiche

Funktion DigitalOcean AWS GCP
Droplet-Größen Fest Benutzerdefiniert Benutzerdefiniert
Kubernetes Verwaltetes DOKS EKS GKE
Objektspeicher Spaces S3 Cloud Storage
Block-Speicher Volumes EBS Persistent Disk
Load Balancer Integriert ELB Cloud Load Balancing
Kostenlose Stufe 200 $ Guthaben Begrenzt 300 $ Guthaben
API-Einfachheit ★★★★★ ★★☆☆☆ ★★★☆☆

DigitalOcean gewinnt in puncto Einfachheit. Die API ist unkompliziert, und die meisten Operationen funktionieren, ohne sich mit Dutzenden von verschachtelten Diensten auseinandersetzen zu müssen.

Praxisfälle

Entwicklungsumgebungen. Ein Startup erstellt isolierte Entwicklungsumgebungen pro Branch. Jeder Pull Request löst API-Aufrufe aus, um ein Droplet mit dem neuesten Code zu erstellen. Nach dem Merge wird das Droplet zerstört. Entwickler testen in produktionsähnlichen Umgebungen ohne manuelle Einrichtung.

Automatisch skalierende Webserver. Eine Webanwendung überwacht die Auslastung. Wenn die CPU 70 % überschreitet, erstellt die API neue Droplets und fügt sie dem Load Balancer hinzu. Wenn die Last sinkt, werden Droplets zerstört. Die Kosten bleiben niedrig, während die Leistung hoch bleibt.

Datenbank-Cluster. Ein verwalteter Datenbankdienst stellt primäre und Replika-Volumes regionsübergreifend bereit. Die API übernimmt automatisch die Replikationskonfiguration, die Sicherungsplanung und die Failover-Einrichtung.

Fazit

Das haben Sie gelernt:

App herunterladen

FAQ

Wie viel kostet ein Droplet?Die Preise beginnen bei 5 $/Monat für 1 vCPU/1 GB. Überprüfen Sie die Preisseite für aktuelle Tarife. Abrechnung pro Stunde ist verfügbar.

Kann ich SSH-Schlüssel mit über die API erstellten Droplets verwenden?Ja. Fügen Sie den SSH-Schlüssel-Fingerprint in das `ssh_keys`-Array ein, wenn Sie Droplets erstellen.

Was ist der Unterschied zwischen Volumes und Spaces?Volumes sind Block-Speicher, die an Droplets angehängt werden. Spaces sind Objektspeicher (wie S3). Verwenden Sie Volumes für Datenbanken, Spaces für Dateien.

Wie erhalte ich die Kubernetes-Konfiguration?

curl -X GET "https://api.digitalocean.com/v2/kubernetes/clusters/CLUSTER_ID/kubeconfig" \
  -H "Authorization: Bearer YOUR_TOKEN"

Kann ich ein Droplet skalieren?Ja, verwenden Sie die Aktion zur Größenänderung. Downgrades erfordern ein Ausschalten. Upgrades können während des Betriebs durchgeführt werden.

Was ist der Unterschied zwischen Backups und Snapshots?Backups sind automatische wöchentliche/tägliche Kopien, die von DigitalOcean verwaltet werden. Snapshots sind manuelle, bei Bedarf erstellte Images, die Sie erstellen.

Wie lange dauert es, Droplets zu erstellen?Normalerweise 30-60 Sekunden. Einige Regionen und Größen können länger dauern.

Kann ich Terraform mit DigitalOcean verwenden?Ja. DigitalOcean hat einen offiziellen Terraform-Provider. Er eignet sich hervorragend für Infrastruktur als Code.

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen