-
- Influencer
- Posts: 13
- Liked: 3 times
- Joined: Jul 09, 2015 9:14 am
- Full Name: Dan Gould
- Location: Brighton, East Sussex, UK
- Contact:
Example RestAPI code
Hi
Does anyone have any example code for putting a web page in front of the cloud connect service? Looking for any examples of using the API to stand up tenants, reset password, allocate repositories and quotas, etc
If not, I will have a try to develop my own and will look to contribute it back for the greater good
Thanks
Dan
Does anyone have any example code for putting a web page in front of the cloud connect service? Looking for any examples of using the API to stand up tenants, reset password, allocate repositories and quotas, etc
If not, I will have a try to develop my own and will look to contribute it back for the greater good
Thanks
Dan
Daniel Gould
CTO
w: www.stratogen.net
CTO
w: www.stratogen.net
-
- Product Manager
- Posts: 20389
- Liked: 2298 times
- Joined: Oct 26, 2012 3:28 pm
- Full Name: Vladimir Eremin
- Contact:
Re: Example RestAPI code
There is a small example written by our Solutions Architect Preben Berg. I believe it should be a good starting point. Thanks.
-
- Influencer
- Posts: 13
- Liked: 3 times
- Joined: Jul 09, 2015 9:14 am
- Full Name: Dan Gould
- Location: Brighton, East Sussex, UK
- Contact:
Re: Example RestAPI code
Hi,
Thanks for that - I had found that this week. When I try it I seem to get an issue with the lookups against the B&R server:
From what I can tell, it looks like it's not properly interrogating the API for the available backup servers. Any thoughts on this?
Thanks
Dan
Thanks for that - I had found that this week. When I try it I seem to get an issue with the lookups against the B&R server:
Code: Select all
[Tue Nov 03 17:59:25.572811 2015] [:error] [pid 2790] [client 192.168.159.1:54485] PHP Fatal error: Uncaught exception 'GuzzleHttp\\Exception\\ClientException' with message 'Client error response [url] http://192.168.159.128:9399/api/backupServers/Not%20Found!/repositories [status code] 400 [reason phrase] BadRequest' in /var/www/html/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:89\nStack trace:\n#0 /var/www/html/vendor/guzzlehttp/guzzle/src/Subscriber/HttpError.php(33): GuzzleHttp\\Exception\\RequestException::create(Object(GuzzleHttp\\Message\\Request), Object(GuzzleHttp\\Message\\Response))\n#1 /var/www/html/vendor/guzzlehttp/guzzle/src/Event/Emitter.php(109): GuzzleHttp\\Subscriber\\HttpError->onComplete(Object(GuzzleHttp\\Event\\CompleteEvent), 'complete')\n#2 /var/www/html/vendor/guzzlehttp/guzzle/src/RequestFsm.php(91): GuzzleHttp\\Event\\Emitter->emit('complete', Object(GuzzleHttp\\Event\\CompleteEvent))\n#3 /var/www/html/vendor/guzzlehttp/guzzle/src/RequestFsm.php(132): GuzzleHttp\\RequestFsm->__invoke(Object(GuzzleHttp\\Transaction))\n#4 /var/www/html/vendor/react/promise/src/FulfilledPromise.php(25): Guzzle in /var/www/html/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 89, referer: http://192.168.159.131/index.php
Thanks
Dan
Daniel Gould
CTO
w: www.stratogen.net
CTO
w: www.stratogen.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
Hi Dan,
Thanks for posting here. I had one service provider last week mentioning they had some issues with the code on the most recent version of PHP. Can you please clarify your version of GuzzleHttp and PHP? I will verify it in my lab ASAP, as I need to also update the code for v9 and Cloud Connect Replication functionality.
- Preben
Thanks for posting here. I had one service provider last week mentioning they had some issues with the code on the most recent version of PHP. Can you please clarify your version of GuzzleHttp and PHP? I will verify it in my lab ASAP, as I need to also update the code for v9 and Cloud Connect Replication functionality.
- Preben
-
- Influencer
- Posts: 13
- Liked: 3 times
- Joined: Jul 09, 2015 9:14 am
- Full Name: Dan Gould
- Location: Brighton, East Sussex, UK
- Contact:
Re: Example RestAPI code
Hi Preben,
This is on guzzlehttp 4.2.3 and php 5.4.16
Thanks
Dan
This is on guzzlehttp 4.2.3 and php 5.4.16
Thanks
Dan
Daniel Gould
CTO
w: www.stratogen.net
CTO
w: www.stratogen.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
Thank you. I will verify if something else is required.
-
- Influencer
- Posts: 13
- Liked: 3 times
- Joined: Jul 09, 2015 9:14 am
- Full Name: Dan Gould
- Location: Brighton, East Sussex, UK
- Contact:
Re: Example RestAPI code
Hi Preben,
I rebuilt my cloud connect server from scratch and it's now working correctly! I think it was down to a certificate error in the end.
Looking forward to the updated example code for v9 as soon as it's available.
Thanks for the great foundation work
Regards
Dan
I rebuilt my cloud connect server from scratch and it's now working correctly! I think it was down to a certificate error in the end.
Looking forward to the updated example code for v9 as soon as it's available.
Thanks for the great foundation work
Regards
Dan
Daniel Gould
CTO
w: www.stratogen.net
CTO
w: www.stratogen.net
-
- Influencer
- Posts: 11
- Liked: 3 times
- Joined: Jan 22, 2016 11:49 am
- Full Name: Harold Buter
- Location: weybridge
- Contact:
Re: Example RestAPI code
Hi Preben,
since your update on your repository for v9 I encountered some issues with the code,
first one was that i got an error code 6 ( unable to resolve host) - which was strange as I was using IP's - to resolve this I change base_url into base_uri on line 45 in veeam.class.php which after this change i was able to contact the vcc server.
however the next issue is that i get an 401 return and in the veeam api log I see the following error:
ps.I change the actual IP adress into myip in this log entry
any ideas how to add the missing header into the post request?
Thanks
Harold
CTO PeaSoup
since your update on your repository for v9 I encountered some issues with the code,
first one was that i got an error code 6 ( unable to resolve host) - which was strange as I was using IP's - to resolve this I change base_url into base_uri on line 45 in veeam.class.php which after this change i was able to contact the vcc server.
however the next issue is that i get an 401 return and in the veeam api log I see the following error:
Code: Select all
22.01.2016 11:36:47] <253> Info [POST] request to [http://myip:9399/api/sessionMngr/?v=v1_2] deserialized. Message: []; Parameters: [].
[22.01.2016 11:36:47] <253> Info [Authenticated] Logging on...
[22.01.2016 11:36:47] <253> Error Login failed.. RequestUri: [http://myip:9399/api/sessionMngr/?v=v1_2].
[22.01.2016 11:36:47] <253> Error Authorization header is missing (Veeam.Backup.Interaction.RestAPI.CRestAPICommunicationException)
[22.01.2016 11:36:47] <253> Error at Veeam.Backup.Enterprise.RestAPIService.CRestOperationContext.GetAuthorizationHeader()
[22.01.2016 11:36:47] <253> Error at Veeam.Backup.Enterprise.RestAPIService.CEnterpriseRestServiceStub.LogInAfterAuthentication(LoginSpecType loginSpec, String version)
any ideas how to add the missing header into the post request?
Thanks
Harold
CTO PeaSoup
Harold Buter
CTO PeaSoup Hosting
w: http://peasoup.net
CTO PeaSoup Hosting
w: http://peasoup.net
-
- Influencer
- Posts: 11
- Liked: 3 times
- Joined: Jan 22, 2016 11:49 am
- Full Name: Harold Buter
- Location: weybridge
- Contact:
[MERGED] : Missing Auth header
Hi Guys,
I'm using the new v9 code from poulpreben github for our cloud connect portal, however I ran into two issues:
- line 45 in veeam.class.php base_url has to be changed into base_uri in order to prevent PHP error 6 - host not resolved (even when using IP only, this has changed in Guzzle client 6+)
- I still have an issue of authentication using the veeam.class.php
error log in apache
error log in veeam api log
i think the issue is in this part of the code
any ideas?
I'm using the new v9 code from poulpreben github for our cloud connect portal, however I ran into two issues:
- line 45 in veeam.class.php base_url has to be changed into base_uri in order to prevent PHP error 6 - host not resolved (even when using IP only, this has changed in Guzzle client 6+)
- I still have an issue of authentication using the veeam.class.php
error log in apache
Code: Select all
http://172.20.1.148:9399/api/sessionMngr/?v=v1_2` resulted in a `401 Unauthorized` response:\n<?xml version="1.0" encoding="utf-8"?><Error StatusCode="401" Message="Authorization header is missing" xmlns="http://ww (truncated...)\n' in /var/www/html/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:107\nStack trace:\n#0 /var/www/html/vendor/guzzlehttp/guzzle/src/Middleware.php(65): GuzzleHttp\\Exception\\RequestException::create(Object(GuzzleHttp\\Psr7\\Request), Object(GuzzleHttp\\Psr7\\Response))\n#1 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(199): GuzzleHttp\\Middleware::GuzzleHttp\\{closure}(Object(GuzzleHttp\\Psr7\\Response))\n#2 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(152): GuzzleHttp\\Promise\\Promise::callHandler(1, Object(GuzzleHttp\\Psr7\\Response), Array)\n#3 /var/www/html/vendor/guzzlehttp/promises/src/TaskQueue.php(60): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#4 /var/ in /var/www/html/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 107, referer: http://172.20.1.139/
Code: Select all
22.01.2016 11:36:47] <253> Info [POST] request to [http://172.20.1.148:9399/api/sessionMngr/?v=v1_2] deserialized. Message: []; Parameters: [].
[22.01.2016 11:36:47] <253> Info [Authenticated] Logging on...
[22.01.2016 11:36:47] <253> Error Login failed.. RequestUri: [http://172.20.1.148:9399/api/sessionMngr/?v=v1_2].
[22.01.2016 11:36:47] <253> Error Authorization header is missing (Veeam.Backup.Interaction.RestAPI.CRestAPICommunicationException)
[22.01.2016 11:36:47] <253> Error at Veeam.Backup.Enterprise.RestAPIService.CRestOperationContext.GetAuthorizationHeader()
[22.01.2016 11:36:47] <253> Error at Veeam.Backup.Enterprise.RestAPIService.CEnterpriseRestServiceStub.LogInAfterAuthentication(LoginSpecType loginSpec, String version)
i think the issue is in this part of the code
Code: Select all
public function __construct($host, $port, $username, $password, $backup, $replication) {
$this->client = new GuzzleHttp\Client(array(
"base_uri" => "http://" . $host . ":" . $port . "/api/",
"defaults" => array(
"auth" => array(
$username,
$password
),
"headers" => array(
"Content-Type" => "text/xml"
),
)
));
$response = $this->client->post('sessionMngr/?v=v1_2');
$this->backup_create = $backup;
$this->replication_create = $replication;
$this->session_id = $response->getHeader('X-RestSvcSessionId');
$this->client->setDefaultOption('headers', array('X-RestSvcSessionId' => $this->session_id));
$this->tenant_password = $this->veeam_generate_password(12);
}
Harold Buter
CTO PeaSoup Hosting
w: http://peasoup.net
CTO PeaSoup Hosting
w: http://peasoup.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
Hi Harold,
Thanks for your feedback.
Can you try to revert the changes you have made in veeam.class.php and try this instead:
Change GuzzleHTTP back to 4.x in composer.json, remove "vendor" folder and re-run "composer install"?
I just want to verify whether this is due to changes in Guzzle code before I begin troubleshooting.
Thanks,
Preben
Thanks for your feedback.
Can you try to revert the changes you have made in veeam.class.php and try this instead:
Change GuzzleHTTP back to 4.x in composer.json, remove "vendor" folder and re-run "composer install"?
I just want to verify whether this is due to changes in Guzzle code before I begin troubleshooting.
Thanks,
Preben
-
- Influencer
- Posts: 11
- Liked: 3 times
- Joined: Jan 22, 2016 11:49 am
- Full Name: Harold Buter
- Location: weybridge
- Contact:
Re: Example RestAPI code
HI Preben,
After I changed the composer.json and when I removed the vendor folder and did a reinstall of the composer it installs version 6.1.1 again
when I run my task I get the error which is due to base_url setting in line 45..
composer install has the following:
Thanks
After I changed the composer.json and when I removed the vendor folder and did a reinstall of the composer it installs version 6.1.1 again
when I run my task I get the error which is due to base_url setting in line 45..
Code: Select all
PHP Fatal error: Uncaught exception 'GuzzleHttp\\Exception\\ConnectException' with message 'cURL error 6: Could not resolve host: sessionMngr (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)' in /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:186\nStack trace:\n#0 /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(150): GuzzleHttp\\Handler\\CurlFactory::createRejection(Object(GuzzleHttp\\Handler\\EasyHandle), Array)\n#1 /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(103): GuzzleHttp\\Handler\\CurlFactory::finishError(Object(GuzzleHttp\\Handler\\CurlHandler), Object(GuzzleHttp\\Handler\\EasyHandle), Object(GuzzleHttp\\Handler\\CurlFactory))\n#2 /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(43): GuzzleHttp\\Handler\\CurlFactory::finish(Object(GuzzleHttp\\Handler\\CurlHandler), Object(GuzzleHttp\\Handler\\EasyHandle), Object(GuzzleHttp\\Handler\\CurlFactory))\n#3 /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(28): GuzzleHttp\\Handler\\CurlHandler->__invoke(Objec in /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 186, referer: http://172.20.1.139/
Code: Select all
/var/www/html$ sudo composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
- Installing symfony/process (v3.0.1)
Loading from cache
- Installing kriswallsmith/assetic (v1.3.2)
Loading from cache
- Installing robloach/component-installer (0.2.3)
Loading from cache
- Installing components/jquery (2.1.1)
Loading from cache
- Installing psr/http-message (1.0)
Loading from cache
- Installing guzzlehttp/psr7 (1.2.1)
Loading from cache
- Installing guzzlehttp/promises (1.0.3)
Loading from cache
- Installing guzzlehttp/guzzle (6.1.1)
Loading from cache
- Installing twbs/bootstrap (v3.3.6)
Loading from cache
Harold Buter
CTO PeaSoup Hosting
w: http://peasoup.net
CTO PeaSoup Hosting
w: http://peasoup.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
Sorry Harold, please delete the vendor folder and run "composer update", not "install". My bad...
-
- Influencer
- Posts: 11
- Liked: 3 times
- Joined: Jan 22, 2016 11:49 am
- Full Name: Harold Buter
- Location: weybridge
- Contact:
Re: Example RestAPI code
Hi Preben,
yeah that worked
also when using guzzle 4.* the client is created and no errors are returned
yeah that worked
also when using guzzle 4.* the client is created and no errors are returned
Harold Buter
CTO PeaSoup Hosting
w: http://peasoup.net
CTO PeaSoup Hosting
w: http://peasoup.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
I will fire up my dev environment and do some further testing with Guzzle 6. Apparently that last commit was past my bedtime
Thank you for your feedback, and please let us know how you manage to implement this in your company.
- Preben
Thank you for your feedback, and please let us know how you manage to implement this in your company.
- Preben
-
- Influencer
- Posts: 11
- Liked: 3 times
- Joined: Jan 22, 2016 11:49 am
- Full Name: Harold Buter
- Location: weybridge
- Contact:
Re: Example RestAPI code
Brilliant,
I've tried a few things but didn't get the header inside the post request.. If you need any testing please let me know as I got a test environment here and am more than happy to work together on this . (PM me if needed mate)
We are busy to create a trial service for our customers, one is instant trial portal from our website and secondly to create a portal for our sales team so than can create new customers quickly.
I've tried a few things but didn't get the header inside the post request.. If you need any testing please let me know as I got a test environment here and am more than happy to work together on this . (PM me if needed mate)
We are busy to create a trial service for our customers, one is instant trial portal from our website and secondly to create a portal for our sales team so than can create new customers quickly.
Harold Buter
CTO PeaSoup Hosting
w: http://peasoup.net
CTO PeaSoup Hosting
w: http://peasoup.net
-
- Influencer
- Posts: 13
- Liked: 3 times
- Joined: Jul 09, 2015 9:14 am
- Full Name: Dan Gould
- Location: Brighton, East Sussex, UK
- Contact:
Re: Example RestAPI code
Hi Harold/Preben,
How are you getting on with the API code for Veeam v9? Did you manage to get it working correctly? I'm getting a cURL error 7 Failed to connect Permission denied error when I try with the modifications above (Guzzle v4, and base_url).
Thanks
Dan
How are you getting on with the API code for Veeam v9? Did you manage to get it working correctly? I'm getting a cURL error 7 Failed to connect Permission denied error when I try with the modifications above (Guzzle v4, and base_url).
Thanks
Dan
Daniel Gould
CTO
w: www.stratogen.net
CTO
w: www.stratogen.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
Hi Dan,
Sorry, I have been on the road for customer engagements for the past couple of days.
I'm not sure why that is not working for you. You may just revert to the last version I have tested extensively. Remove all the files, and use this:
That's using the commit I made on GuzzleHTTP 4, which definitely worked.
Sorry, I have been on the road for customer engagements for the past couple of days.
I'm not sure why that is not working for you. You may just revert to the last version I have tested extensively. Remove all the files, and use this:
Code: Select all
git clone https://github.com/poulpreben/veeam-cloudconnect.git
cd veeam-cloudconnect
git checkout d1dc554b5525e5b5ba383a2659e3659a3be02eea
-
- Influencer
- Posts: 13
- Liked: 3 times
- Joined: Jul 09, 2015 9:14 am
- Full Name: Dan Gould
- Location: Brighton, East Sussex, UK
- Contact:
Re: Example RestAPI code
All fixed - I forgot about disbaling selinux protection in my linux VM running the code!
Daniel Gould
CTO
w: www.stratogen.net
CTO
w: www.stratogen.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
Hi all. I have had to revert to using GuzzleHTTP 5.x, as 6.x implements PSR-7, which would require me to completely refactor my code.
I have not tested which SELinux settings are required, but here is my configuration:
Thanks for your feedback!
I have not tested which SELinux settings are required, but here is my configuration:
Code: Select all
$ vagrant ssh -c "uname -a; php --version; apachectl -v"
Linux restful-demo 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:34:46)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
Server version: Apache/2.4.7 (Ubuntu)
Server built: Oct 14 2015 14:20:21
-
- Influencer
- Posts: 11
- Liked: 3 times
- Joined: Jan 22, 2016 11:49 am
- Full Name: Harold Buter
- Location: weybridge
- Contact:
Re: Example RestAPI code
Thanks Preben,
I'm using guzzle 4.x currently which is working good for me so far. any benefits of using 5.x?
my config is:
Do you have any tips on username check? i.e. check if user exist in API and return to form if it does .. Am breaking my head around that part
Thanks
I'm using guzzle 4.x currently which is working good for me so far. any benefits of using 5.x?
my config is:
Code: Select all
Linux vm-dc01-www02 4.2.0-25-generic #30-Ubuntu SMP Mon Jan 18 12:31:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
PHP 5.6.11-1ubuntu3.1 (cli)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
Server version: Apache/2.4.12 (Ubuntu)
Server built: Jul 24 2015 15:59:00
Thanks
Harold Buter
CTO PeaSoup Hosting
w: http://peasoup.net
CTO PeaSoup Hosting
w: http://peasoup.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
Hi Harold,
The only reason I changed to 5.x is because it is actively maintanined, whereas 4.x is end of life. For the example specifically, I do not see any differences.
We are all at the annual sales kickoff this week, so I do not have access to my development environment, but I can definitely write such a check for you once I get back.
Thanks,
Preben
The only reason I changed to 5.x is because it is actively maintanined, whereas 4.x is end of life. For the example specifically, I do not see any differences.
We are all at the annual sales kickoff this week, so I do not have access to my development environment, but I can definitely write such a check for you once I get back.
Thanks,
Preben
-
- Influencer
- Posts: 11
- Liked: 3 times
- Joined: Jan 22, 2016 11:49 am
- Full Name: Harold Buter
- Location: weybridge
- Contact:
Re: Example RestAPI code
Hi Preben,
that would make sense, I will upgrade to version 5.x a bit later as I still develop some other parts at the moment . Any help with the check would be very much appreciated, programming using the API is relative new to me
Thanks again for your help mate
and have fun at the kick off
cheers,
that would make sense, I will upgrade to version 5.x a bit later as I still develop some other parts at the moment . Any help with the check would be very much appreciated, programming using the API is relative new to me
Thanks again for your help mate
and have fun at the kick off
cheers,
Harold Buter
CTO PeaSoup Hosting
w: http://peasoup.net
CTO PeaSoup Hosting
w: http://peasoup.net
-
- Certified Trainer
- Posts: 1025
- Liked: 448 times
- Joined: Jul 23, 2012 8:16 am
- Full Name: Preben Berg
- Contact:
Re: Example RestAPI code
Hi Harold,
I have added the veeam_check_username() method here > https://github.com/poulpreben/veeam-clo ... s.php#L152
Thanks,
Preben
I have added the veeam_check_username() method here > https://github.com/poulpreben/veeam-clo ... s.php#L152
Thanks,
Preben
-
- Influencer
- Posts: 11
- Liked: 3 times
- Joined: Jan 22, 2016 11:49 am
- Full Name: Harold Buter
- Location: weybridge
- Contact:
Re: Example RestAPI code
Brilliant mate,
many thanks for that! will incorporate that into the our site now
cheers,
many thanks for that! will incorporate that into the our site now
cheers,
Harold Buter
CTO PeaSoup Hosting
w: http://peasoup.net
CTO PeaSoup Hosting
w: http://peasoup.net
Who is online
Users browsing this forum: No registered users and 6 guests