PHP API

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jesper S

Jesper S

11/02/2017 19:32:58
Quote Anchor link
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.
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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
 
PHP hulp

PHP hulp

02/12/2024 15:41:30
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 20:01:53
Quote Anchor link
Of je GET of POST gebruikt maakt niet uit of een VPS-ID en een status/actie door te geven.
 
Jesper S

Jesper S

11/02/2017 20:13:09
Quote Anchor link
Weet je misschien dan hoe ik kan zorgen dat webserver A (Van de klant), een actie kan laten uitvoeren op webserver B (Mijn webserver).
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 20:16:56
Quote Anchor link
Je kan de cliënt bijvoorbeeld via cURL een POST of GET laten doen op de URL van je API.
 
Jesper S

Jesper S

11/02/2017 20:24:44
Quote Anchor link
Maar hoe werkt dat met een POST?
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 20:36:36
Quote Anchor link
Je stuurt gewoon een POST mee vanuit de cliënt!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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);
?>
 
Jesper S

Jesper S

11/02/2017 21:01:15
Quote Anchor link
Ik heb dit stukje toegevoegd aan api.php

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?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:
Quote:
string(6) "
"
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 21:02:22
Quote Anchor link
Ik weet niet wat die functie VPS_restart doet. Daar zat het probleem dan inzitten.
Kan je wat meer daarover vertellen?
Gewijzigd op 11/02/2017 21:02:46 door - Ariën -
 
Jesper S

Jesper S

11/02/2017 21:04:33
Quote Anchor link
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.

Toevoeging op 11/02/2017 21:10:14:

Maar als ik dit in api.php zet krijg ik ook nog steeds de zelfde melding.
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo $_GET['vpsID'];
echo '<br />';
echo $_GET['action'];
?>
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 21:14:35
Quote Anchor link
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?
 
Jesper S

Jesper S

11/02/2017 21:16:44
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 21:21:47
Quote Anchor link
Lol...
Proxmox - Powerful Open Source Server Solutions

En dan is de API-cliënt nog met Ioncube encoded.
Ik zou de maker eens vragen of die goede foutafhandeling erin kan zetten. Een lege string is ook weer zo niets-zeggend.
Gewijzigd op 11/02/2017 21:23:11 door - Ariën -
 
Jesper S

Jesper S

11/02/2017 21:22:54
Quote Anchor link
Volgens mij is dat puur om te verkomen dat ik het kan door verkopen.
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 21:25:23
Quote Anchor link
Of je bouwt gewoon een eigen API die de requests naar Proxmox doorstuurt. Dan heb je alle controle erover.
 
Jesper S

Jesper S

11/02/2017 21:28:09
Quote Anchor link
Ik heb al een plan met een systeembeheerder om WHMCS aan te schaffen en dan de module van ModulesGarden te gaan gebruiken.
Maar even nog terug te komen op wat ik zei:

Maar als ik dit in api.php zet krijg ik ook nog steeds de zelfde melding.
Quote:
Code (php)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo $_GET['vpsID'];
echo '<br />';
echo $_GET['action'];
?>


Toevoeging op 11/02/2017 21:29:56:

http://api.getapi.nl/ Live demo :P
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 21:30:10
Quote Anchor link
api.php is het script op de server die de requests afhandelt. Verder werkt dit met $_POST, en jij gebruikt $_GET.
Gewijzigd op 11/02/2017 21:34:42 door - Ariën -
 
Jesper S

Jesper S

11/02/2017 21:38:14
Quote Anchor link
Ah, ik zie het. Nu krijg ik op api.getapi.nl dit:
string(16) "1337
reboot"

Ik neem aan dat het nu klopt?
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 21:39:39
Quote Anchor link
Klopt, maar meer dan dat gebeurt er ook niet ;-)
Gewijzigd op 11/02/2017 21:40:19 door - Ariën -
 
Jesper S

Jesper S

11/02/2017 21:42:29
Quote Anchor link
Ik ga zelf wel verder prutsen, in ieder geval heel erg bedankt.
 
- Ariën  -
Beheerder

- Ariën -

11/02/2017 21:46:33
Quote Anchor link
Succes, als je nog vragen hebt, dan horen we het wel.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.