Ich habe mich die letzten Tage recht ausführlich mit den API-Funktionen beschäftigt und konnte über https://app.swaggerhub.com/apis-docs/keyhelp/api/2.1 auch schon diverse Tests erfolgreich abschließen.
Nun möchte ich gerne Bash-Scripte mit den jeweiligen Snippets anlegen, um bei Bedarf schnell eine Funktion über die API auszuführen. Leider gelingt mir das nicht. Hat vielleicht jemand mal ein Beispiel, wie ein funktionierendes Bash-File aussehen muss, damit ich es z.b. über Putty mit Bash starten kann? Ich bekomme das einfach nicht hin...und bei der Suche im Netz habe ich echt nichts finden können.
Zweite Frage: Kann ich via Api auf einen Rutsch auch gleich mehrere Domains anlegen lassen? Wie stelle ich das ein? Ich würde gerne in einem Rutsch z.b. fünf Domains und die jeweils zugehörigen Datenbanken anlegen lassen.
Vielleicht hat ja jemand einen Denkansatz für mich...
Bye Mike
Api als bash-script nutzen
Re: Api als bash-script nutzen
Hallo,
Wenn du über https://app.swaggerhub.com/apis-docs/keyhelp/api/2.1 getestet hast, dann hast du also den "Try out" button benutzt, korrekt?
Dann wird dir eigentlich gleich der entsprechende Curl-Befehl angezeigt, den man ausführen müsste. Zum Beispiel so:
Oder hier zum Anlegen einer Domain:
Jetzt musst du nur noch den Return-code / die Antwort auswerten. Hierzu einmal die curl Referenz durchsuchen, was für Parameter man dem curl Befehl an Parametern noch mitgeben muss, um die Informationen, die man benötigt zu erhalten (https://linux.die.net/man/1/curl).
Ggf. möchte man das JSON des Bodys auch nicht selbst schreiben, hierzu gibt es im bash auch Möglichkeiten (Suchbegriff json + bash).
Um mehrere Domains mit einmal anzulegen benutzt du dann einfach eine Schleife, z.B. https://www.cyberciti.biz/faq/bash-for-loop/
Wenn du über https://app.swaggerhub.com/apis-docs/keyhelp/api/2.1 getestet hast, dann hast du also den "Try out" button benutzt, korrekt?
Dann wird dir eigentlich gleich der entsprechende Curl-Befehl angezeigt, den man ausführen müsste. Zum Beispiel so:
Code: Select all
curl -X 'GET' \
'https://<SERVERNAME>/api/v2/ping' \
-H 'accept: application/json' \
-H 'X-API-Key: <API-KEY>'
Code: Select all
curl -X 'POST' \
'https://<SERVERNAME>/api/v2/domains' \
-H 'accept: application/json' \
-H 'X-API-Key: <API-KEY>' \
-H 'Content-Type: application/json' \
-d '{
"id_user": 4,
"id_parent_domain": 0,
"domain": "example.com",
"php_version": "",
"is_disabled": false,
"delete_on": "2019-08-15T11:29:13+02:00",
"is_dns_disabled": false,
"is_email_domain": false,
"create_www_subdomain": true,
"skeleton": "wordpress",
"target": {
"target": "https://www.keyhelp.de",
"forwarding_type": 301
},
"security": {
"id_certificate": 0,
"lets_encrypt": true,
"force_https": true,
"is_hsts": true,
"hsts_max_age": 10368000,
"hsts_include": true,
"hsts_preload": true
}
}'
Jetzt musst du nur noch den Return-code / die Antwort auswerten. Hierzu einmal die curl Referenz durchsuchen, was für Parameter man dem curl Befehl an Parametern noch mitgeben muss, um die Informationen, die man benötigt zu erhalten (https://linux.die.net/man/1/curl).
Ggf. möchte man das JSON des Bodys auch nicht selbst schreiben, hierzu gibt es im bash auch Möglichkeiten (Suchbegriff json + bash).
Um mehrere Domains mit einmal anzulegen benutzt du dann einfach eine Schleife, z.B. https://www.cyberciti.biz/faq/bash-for-loop/
Mit freundlichen Grüßen / Best regards
Alexander Mahr
**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
Alexander Mahr
**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
Re: Api als bash-script nutzen
Ja genau, habe den Tryout-Button genutzt und das klappt dort auch. Dann bekomme ich ja drei Snippets angeboten: cURL (bash), cURL (Power Shell) und cURL (CMD).
Die CMD-Variante habe ich mittels CMD in Windows problemlos nutzen können und probeweise eine Domain angelegt.
Danach habe ich einfach das Snippet cURL (bash) in eine Textdatei gepackt und mit sh benannt sowie ausführbar gemacht, genau so:
Und das funktioniert nicht. Leider habe ich noch nicht so viel Ahnung, wie ich das umsetzen kann. Mir würde auch reichen, mehrere bash-Dateien zu erstellen, die ich dann wiederum manuell oder über ein anderes Script starten oder notfalls manuell abarbeiten kann.
Bye Mike
Die CMD-Variante habe ich mittels CMD in Windows problemlos nutzen können und probeweise eine Domain angelegt.
Danach habe ich einfach das Snippet cURL (bash) in eine Textdatei gepackt und mit sh benannt sowie ausführbar gemacht, genau so:
Code: Select all
#!/bin/bash
curl -X 'POST' \
'https://<SERVERNAME>/api/v2/domains' \
-H 'accept: application/json' \
-H 'X-API-Key: <API-KEY>' \
-H 'Content-Type: application/json' \
-d '{
"id_user": 4,
"id_parent_domain": 0,
"domain": "example.com",
"php_version": "",
"is_disabled": false,
"delete_on": "2019-08-15T11:29:13+02:00",
"is_dns_disabled": false,
"is_email_domain": false,
"create_www_subdomain": true,
"skeleton": "wordpress",
"target": {
"target": "https://www.keyhelp.de",
"forwarding_type": 301
},
"security": {
"id_certificate": 0,
"lets_encrypt": true,
"force_https": true,
"is_hsts": true,
"hsts_max_age": 10368000,
"hsts_include": true,
"hsts_preload": true
}
}'
Bye Mike