Api als bash-script nutzen
Api als bash-script nutzen
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
Re: Api als bash-script nutzen
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/
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
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