Recherche


imprimer pdf
SoAPI

DESCRIPTIF


SoAPI est un service web qui vous permet d'acheter et de configurer vos produits OVH sans avoir a vous connectez à l'interface de gestion (Manager V3). Avec la technologie WSDL, vous utilisez les méthodes OVH à distance avec des petits bouts de code de quelques lignes seulement, dans votre langage de programmation favori.

Plus d'informations sur le site OVH.

Toutes les signatures des méthodes ainsi qu'un générateur de code PHP, Perl, Python, Ruby et C# sont disponibles dans la documentation technique.

AIDE


Erreur python 'KeyError'


Vous avez le message d'erreur suivant :

  • KeyError: u'typens'


La solution :

Utiliser la dernière version de développement de SOAPpy :

http://pywebsvcs.svn.sourceforge.net/viewvc/pywebsvcs/trunk/SOAPpy/

Erreurs curl sur mon serveur dédié


Vous avez les messages d'erreurs suivants :


  • Client soap:ClientApplication failed during request deserialization ...

  • HTTP curl_exec error 35 Unknown SSL protocol error in connection to ...


La raison probable :

La gestion du timeout par defaut de curl est trop courte.

La solution :

Augmenter le timeout de curl en éditant la classe SOAP_Transport_HTTP

Vous trouverez ce fichier :

  • sous debian dans /usr/local/php/SOAP/Transport/HTTP.php

  • sous gentoo dans /usr/share/php/SOAP/Transport/HTTP.php


Modifier la variable $timeout (ligne 64) :
var $timeout = 30;


Gestion des connections simultanées


Perl :


#!/usr/bin/perl
use strict;
use SOAP::WSDL;
import SOAP::Lite;

# Keep-Alive?
$SOAP::Constants::PATCH_HTTP_KEEPALIVE = 1;

my $soap = SOAP::WSDL->new();
$soap->wsdl('http://www.ovh.com/soapi/ovh.wsdl')
$soap->wsdlinit();

# limitation des connections simultanées
my $transport = $soap->transport();
$transport->conn_cache({ total_capacity => 10 });

[...]


HowTo .NET / C# sous Visual Studio


1) Créer la classe proxy du webservice avec l'outils wsdl.exe
$> wsdl.exe http://www.ovh.com/soapi/soapi-dlw-1.21.wsdl
puis ajouter la classe managerService.cs au projet


L'outil wsdl.exe se trouve généralement dans le répertoire :
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin


2) Ajouter la référence System.Web.Services

3) Appeler la webservice : managerService soapi = new managerService();

Un exemple de code avec appel à domainList :


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyProject?
{
class Program
{
static void Main(string[] args)
{
managerService soapi = new managerService();

//login
string session = soapi.login("XXXXX-ovh", "XXXXXX", "fr", false);

string[] domains = soapi.domainList(session);

//logout
soapi.logout(session);

foreach(string dom in domains)
{
Console.WriteLine(dom);
}

Console.ReadLine();
}
}
}