Beste mensen,

Ik wou eens kijken of ik zelf een API kon maken. Ik wil graag een eigen API omdat mijn klanten dan hun eigen panelen kunnen maken, of iets kunnen creëren om te resellen. Ik heb al iets gemaakt om data op te halen. Dit gebeurd met JSON. Nu loop ik vast, ik wil graag dat klanten hun VPS kunnen starten, stoppen en herstarten. Ik heb even gekeken op het internet en dit moet met 'POST' zeggen veel mensen. Kunnen jullie mij misschien helpen?

Deze code heb ik uit het klanten paneel geknipt. Ik weet niet of dit nodig is voor de POST.
<?php
// Laat de server starten
VPS_start('<SERVER ID>');

// Laat de server stoppen
VPS_stop('<SERVER ID>');

// Laat de server herstarten
VPS_restart('<SERVER ID>');
?>


Ik hoop dat jullie mij kunnen helpen.

Met vriendelijke groet,


Jesper
Of je GET of POST gebruikt maakt niet uit of een VPS-ID en een status/actie door te geven.
Weet je misschien dan hoe ik kan zorgen dat webserver A (Van de klant), een actie kan laten uitvoeren op webserver B (Mijn webserver).
Je kan de cliënt bijvoorbeeld via cURL een POST of GET laten doen op de URL van je API.
Maar hoe werkt dat met een POST?
Je stuurt gewoon een POST mee vanuit de cliënt!
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://www.site.nl/api.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"vpsID=1337&action=reboot");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec($ch);
curl_close($ch);

var_dump($output);
?>
Ik heb dit stukje toegevoegd aan api.php


<?php
if($_GET['action'] && $_GET['action'] == 'reboot') {
VPS_restart($_GET['vpsID']);
} else {
die('Actie <b>'.$_GET['action'].'</b> niet gevonden!');
exit();
}
?>


En als ik die code run dan krijg ik dit terug:
string(6) "
"

Ik weet niet wat die functie VPS_restart doet. Daar zat het probleem dan inzitten.
Kan je wat meer daarover vertellen?
Dat weet ik zelf ook niet. Het hele klant systeem is custom gemaakt en geencrypt met IonCube. Ik zal even een email sturen. Maar toch bedankt.

[size=xsmall]Toevoeging op 11/02/2017 21:10:14:[/size]

Maar als ik dit in api.php zet krijg ik ook nog steeds de zelfde melding.
<?php
echo $_GET['vpsID'];
echo '<br />';
echo $_GET['action'];
?>

Als je niet weet hoe de functie werkt, dan wordt het lastig om het uit te zoeken.
Dus vraag de maker anders eens, of is er een documentatie over de API?
Het klanten paneel is custom gemaakt zo als ik al zei. Ik weet dat het systeem van de VPSen gemaakt is met Proxmox en dat is dat dan weer in het klantenpaneel verwerkt.

Reageren