Zum Hauptinhalt springen

Ein Projekt über die API erstellen

Über Projekt-Platzierungen

Es gibt verschiedene Varianten, ein neues Projekt zu erstellen:

  1. Wenn du Zugriff auf einen Server hast (zum Beispiel, wenn du den "Space Server"-Tarif1 verwendest), kannst du ein neues Projekt auf diesem Server erstellen. Alle Projekte, die auf einem Server erstellt werden, verwenden denselben gemeinsamen Ressourcen-Pool. Da du für den Server bezahlst, kannst du ohne zusätzliche Kosten so viele Projekte erstellen, wie die Ressourcen-Verwendung zulässt.
  2. Du kannst den Tarif "proSpace"2 verwenden. Das Projekt bekommt dann eigene Ressourcen zugewiesen. Jedes Projekt wird einzeln abgerechnet.

Ein Projekt erstellen...

...auf einem Server

Voraussetzung dafür, ein Projekt auf einem bestehenden Server zu erstellen, ist die ID dieses Servers. Du kannst alle Server finden, auf die du Zugriff hast, indem du den GET/v2/servers/-Endpunkt verwendest.

Um ein neues Projekt zu erstellen, sende eine Anfrage an den POST/v2/servers/{serverId}/projects/-Endpunkt. Der Anfragetext muss ein JSON-Objekt mit den folgenden Eigenschaften enthalten:

  • description (String, Pflichtfeld) sollte eine menschenlesbare Beschreibung des Projekts enthalten.

Die Antwort im Erfolgsfall enthält ein JSON-Objekt mit den folgenden Eigenschaften:

  • id ist die ID des neu erstellten Projekts.

...als einzelnes Projekt

Um ein einzelnes Projekt erstellen zu können, musst du berechtigt sein, in einer Organisation kostenpflichtige Aktionen auszuführen. Nutze dann den Endpunkt POST/v2/orders/, um ein neues Projekt kostenpflichtig zu bestellen.

Der Anfragetext muss ein JSON-Objekt mit den folgenden Eigenschaften enthalten:

  • orderType: "projectHosting" gibt an, dass wir ein neues Projekt erstellen wollen
  • orderData: Objekt, das die Bestellung beschreibt. Sollte mindestens folgende Eigenschaften enthalten:
    • customerId: (String, Pflichtfeld) ID der Organisation, die das Projekt bezahlen wird
    • description: (String, Pflichtfeld) menschenlesbare Beschreibung des Projektes
    • diskspaceInGiB: (Number, Pflichtfeld) Speicherplatz, der für das Projekt gebucht werden soll. Mindestens 20 GiB, der Wert muss ein Vielfaches von 20 sein.
    • spec:
      • machineType: (String, Pflichtfeld) definiert, welche Ressourcen (CPU, RAM) dem Projekt bereitgestellt werden sollen. Mögliche Werte erhälst Du über den Endpunkt GET/v2/articles/.

Die Antwort im Erfolgsfall enthält ein JSON-Objekt mit den folgenden Eigenschaften:

  • id ist die ID der neu erstellten Bestellung.

Überprüfen der Projekt-Verfügbarkeit

Ein neu erstelltes Projekt ist nicht sofort verfügbar (sollte es jedoch innerhalb weniger Sekunden sein). Um zu überprüfen, ob ein Projekt bereit ist, sende eine Anfrage an den GET/v2/projects/{projectId}/-Endpunkt. Unter anderem enthält die Antwort eine isReady-Eigenschaft. Diese Eigenschaft ist true, wenn das Projekt bereitgestellt und verfügbar ist, und andernfalls false.

Footnotes

  1. https://www.mittwald.de/space-server

  2. https://www.mittwald.de/prospace