SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
C'est quoi une API ?
Et les API chez OVH
Vincent Cassé
Développeur
Pourquoi des API ?
- Données sont affichées dans un navigateur, avec un design
- Pas de structure définie
- Destiné à être compris par des humains
- Données structurées en fonction de leur contenu
- Rendu brut, sans affichage particulier
- Permet l'utilisation automatisé de ces données (donc par des machines)
Du site web :
Aux API :
À quoi servent les API ?
- Avoir une interface simple pour gérer des produits
- Créer des applications pour des usages spécifiques
- Créer une interaction avec d'autres sites et logiciels
- Inventer de nouveaux usages
- Protéger les accès aux comptes de ses clients
- S'assurer que des programmes / sites externes utilisent leur produits
- Permet de fournir un service automatisé (impression et envoi de factures...)
Pour les développeurs :
Pour le fournisseur :
Les API : interface entre 2 services
- Socket : transfert brut de données entre deux service → applications liées
- RPC : définition d'une interface en C → applications “lourdes”
- SOAP : définition d'une interface sur HTTP et formaté avec XML
- REST : définition d'une interface sur HTTP et formaté avec XML ou JSON
Petite histoire des interfaces
API REST
- Classement des ressources en arborescence
- Utilisation des verbes HTTP : GET, POST, PUT et DELETE
GET /domain/zone/
GET /domain/zone/{my_zone}
GET /domain/zone/{my_zone}/record
POST /domain/zone/{my_zone}/record
GET /domain/zone/{my_zone}/record/{one_id_record}
Exemples :
Avantages et inconvénients de REST
- Utilise un protocole accessible partout : HTTP
- Beaucoup de langages possèdent un mapping avec HTTP
- Simple à comprendre et tester
Avantages
- Le serveur ne peut pas initier la conversation
Inconvénient
À quoi servent les API ?
- Gérer ses produits sans passer par les espaces client
- Supprimer de nombreuses actions manuelles
- Simplifier les déploiements
- Améliorer ses processus de tests et d'intégration continue
- Configurer rapidement des systèmes complexes
...
- Tous les produits pourront se gérer depuis l’API
- L'espace client est basé sur ces API
By OVH
Pour quoi faire ?
Les API OVH
api.ovh.com
Produits OVH
api.runabove.com
Labs OVH
api.hubic.com
hubiC API
Authentification script-able Authentification OAuth2
Les API OVH
api.soyoustart.com
Labs serveurs dédiés
api.kimsufi.com
Serveurs dédiés discount
Deprecated
ovh.com/soapi/fr/
Authentification script-able Ancienne API SOAPi
Découvrir les API
https://api.ovh.com/console/
https://eu.api.kimsufi.com/console/
https://api.soyoustart.com/console/
https://api.hubic.com/console/
https://api.runabove.com/console/
Authentification Script-able
Authentification déportée chez OVH
- Ne partage pas le mot de passe avec l’application tierce
- Token d'authentification envoyé à l'API à chaque requête : la “Consumer key”
- Validation du token par l'utilisateur et uniquement depuis {ovh.com|runabove.com}
Droits d’accès
Utilisateur Application
Consumer
key
Authentification Script-able
Granularité des droits
- Droits différents pour chaque “Consumer Key”
- Limitation du périmètre des appels en fonction des URL
- Droits décrits avec des regex sur les URL
Exemples :
GET /me/bill/*
GET,POST,DELETE,PUT /dedicated/server/{server_name}/*
POST /dedicated/server/*/reboot
Authentification Script-able
Créer des identifiants d'application
https://{ca,eu}.api.ovh.com/createApp/
https://api.runabove.com/createApp/
https://eu.api.kimsufi.com/createApp/
https://eu.api.soyoustart.com/createApp/
Authentification Script-able
Récupérer une “Consumer Key”
POST https://eu.api.ovh.com/1.0/auth/credential
"accessRules": [
{
"method": "GET",
"path": "/dedicated/server"
}
],
"redirection":"https://www.mywebsite.com/"
{
"validationUrl":"https://eu.api.ovh.com/auth/?credentialToken=iQ1joJExxxxxxOtrPQEeRh",
"consumerKey":"one_consumer_key",
"state":"pendingValidation"
}
Login de l'utilisateur
La première requête !
GET https://eu.api.ovh.com/1.0/dedicated/server
[
"ns1337.a.org",
"ns42.a.org"
]
Comment utiliser l'API ?
Avec HTTP
La signature est générée à l'aide des informations de la requête
curl -H 'X-Ovh-Application:one_application_key’ 
-H 'X-Ovh-Timestamp:1369560945’ 
-H 'X-Ovh-Signature:$1$sign' 
-H 'X-Ovh-Consumer:one_consumer_key’ 
https://eu.api.ovh.com/1.0/dedicated/server/
"$1$" +
SHA1_HEX(application_secret+"+"+consumer_key+"+"+METHOD+"+"+QUERY+"+"+BODY+"+"+TS
TAMP)
Comment utiliser l'API ?
Sans réinventer la roue
github.com/ovh
Utilisations basiques à avancées
Manager VPS personnalisé
Comment redémarrer un VPS ?
Manager VPS personnalisé
import ovh
client = ovh.Client()
print client.post('/vps/vps42424242.ovh.net/reboot')
Effectuer des actions de masse
Une faille de sécurité impacte un port sur vos serveurs
Comment appliquer une règle sur les IP protégées par le firewall OVH ?
Effectuer des actions de masse
def myurlencode (string):
return urllib.quote(string).replace('/', '%2f')
ips = client.get('/ip')
for ip in ips:
try:
encodedIp = myurlencode(ip)
inFirewall = client.get('/ip/' + encodedIP + '/firewall');
for ipInFirewal in inFirewall:
content = { 'action': 'deny', 'protocol': 'tcp', 'sequence': 0, 'sourcePort': 80 }
url = '/ip/' + encodedIP + '/firewall/' + myurlencode(inIp) + "/rule"
client.post(url,content)
print inIp , " in ", ip, " : ok"
except requests.exceptions.HTTPError, e:
print e , " " , ip
Protéger ses déploiements
Votre configuration Puppet est sur Git et vous déployez automatiquement
Comment créer un snapshot à chaque commit avec l’API OVH et les hooks Git ?
Protéger ses déploiements
import ovh
client = ovh.Client()
print client.post('/vps/vps42424242.ovh.net/createSnapshot')
.git/hooks/pre-commit
Gérer les pics de charge
Un site e-commerce peut subir de fortes charges
Comment ajouter des serveurs PHP-FPM + Nginx lors de ces pics ?
Gérer les pics de charge
- Une IP load balancing
- Un serveur web permanent
- Un ou plusieurs /cloud en fonction de charge
Serveur webServeur /cloud
Outils nécessaires
Gérer les pics de charge
Connaître l'état du serveur web permanent
pm.status_path = /status
/etc/php5/fpm/pool.d/www.conf :
/etc/nginx/sites-available/default :
location /status {
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
Gérer les pics de charge
curl http://mon_serveur_php/status?json
Connaître l'état du serveur web permanent
{
"accepted conn": 1337,
"active processes": 1,
"idle processes": 2,
"listen queue": 0,
"listen queue len": 0,
"max active processes": 10,
"max children reached": 4,
"max listen queue": 0,
"pool": "www",
"process manager": "dynamic",
"start since": 3926,
"start time": 1393946907,
"total processes": 3
}
Gérer les pics de charge
Démarrer un serveur cloud
flavor = "550757b3-36c2-4027-b6fe-d70f45304b9c"; #VPS-SSD-1 BHS
image = "1b042c00-5978-4d75-9a7e-0d7f6ed5be76"; # Ubuntu 15.10 BHS
project_cloud = "93c6bxxxxxxxxxxxfeb6";
r = requests.get('http://my_server/status?json')
active_processes = json.loads(r.content)['active processes']
if active_processes >= 8:
client.post("/cloud/project/" + project_cloud + "/instance", flavorId=flavor,
imageId=image, name="php-fpm load peak", region="BHS1", userData="Script to
run");
   
# Wait cloud machine is ready
    ipInBackend = client.get('/ip/loadBalancing/ip-192.168.0.0/backend')
    if not ('127.0.0.1' in ipInBackend):
    content = { 'ipBackend': '127.0.0.1', 'probe': 'http' }
        client.post('/ip/loadBalancing/ip-192.168.0.0/backend', content)
        
Aller plus loin
- https://api.{ ovh | runabove | soyoustart | kimsufi | hubic }.com
- Les consoles
- github.com/ovh
- api-subscribe@ml.ovh.net

Mais conteúdo relacionado

Mais procurados

Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptxIdrissaDembl
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
 
Les web services
Les web servicesLes web services
Les web servicesdihiaselma
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiDonia Hammami
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTtayebbousfiha1
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Ramzi Noumairi
 
API Asynchrones en Java 8
API Asynchrones en Java 8API Asynchrones en Java 8
API Asynchrones en Java 8José Paumard
 
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing ZoneCréer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing ZoneAmazon Web Services
 
eServices-Chp2: SOA
eServices-Chp2: SOAeServices-Chp2: SOA
eServices-Chp2: SOALilia Sfaxi
 
Introduction au web cours.pdf
Introduction au web cours.pdfIntroduction au web cours.pdf
Introduction au web cours.pdfElomyakobi
 
Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8 Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8 ayoub damir
 
Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)Chamseddine Ouerhani
 

Mais procurados (20)

Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptx
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Les web services
Les web servicesLes web services
Les web services
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
Angular 11
Angular 11Angular 11
Angular 11
 
Cours 1 introduction
Cours 1 introductionCours 1 introduction
Cours 1 introduction
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHT
 
Cours 2 les composants
Cours 2 les composantsCours 2 les composants
Cours 2 les composants
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
 
API Asynchrones en Java 8
API Asynchrones en Java 8API Asynchrones en Java 8
API Asynchrones en Java 8
 
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing ZoneCréer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
 
eServices-Chp2: SOA
eServices-Chp2: SOAeServices-Chp2: SOA
eServices-Chp2: SOA
 
Introduction au web cours.pdf
Introduction au web cours.pdfIntroduction au web cours.pdf
Introduction au web cours.pdf
 
MongoDB and Node.js
MongoDB and Node.jsMongoDB and Node.js
MongoDB and Node.js
 
Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8 Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8
 
Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Soap
SoapSoap
Soap
 

Destaque

[FR] Les connexions SDSL chez OVH Télécom
[FR] Les connexions SDSL chez OVH Télécom[FR] Les connexions SDSL chez OVH Télécom
[FR] Les connexions SDSL chez OVH TélécomOVHcloud
 
Webinar - Minimise your security risk with Hybrid Cloud and OVH vRack
Webinar - Minimise your security risk with Hybrid Cloud and OVH vRackWebinar - Minimise your security risk with Hybrid Cloud and OVH vRack
Webinar - Minimise your security risk with Hybrid Cloud and OVH vRackOVHcloud
 
Advanced Web Hosting
Advanced Web HostingAdvanced Web Hosting
Advanced Web HostingOVHcloud
 
[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrêmeOVHcloud
 
Introduction to OverTheBox
Introduction to OverTheBoxIntroduction to OverTheBox
Introduction to OverTheBoxOVHcloud
 
[FR] Timeseries appliqué aux couches de bébé
[FR] Timeseries appliqué aux couches de bébé[FR] Timeseries appliqué aux couches de bébé
[FR] Timeseries appliqué aux couches de bébéOVHcloud
 
HTTPS: All you need to know
HTTPS: All you need to knowHTTPS: All you need to know
HTTPS: All you need to knowOVHcloud
 
Discover the OVH Dedicated Cloud Webinar
Discover the OVH Dedicated Cloud WebinarDiscover the OVH Dedicated Cloud Webinar
Discover the OVH Dedicated Cloud WebinarOVHcloud
 
OVH Webinar: 10 questions you should ask your Cloud Service Provider
OVH Webinar: 10 questions you should ask your Cloud Service ProviderOVH Webinar: 10 questions you should ask your Cloud Service Provider
OVH Webinar: 10 questions you should ask your Cloud Service ProviderOVHcloud
 
[FR] OVH Webinar : 10 questions à poser à votre Cloud Service Provider
[FR] OVH Webinar : 10 questions à poser à votre Cloud Service Provider[FR] OVH Webinar : 10 questions à poser à votre Cloud Service Provider
[FR] OVH Webinar : 10 questions à poser à votre Cloud Service ProviderOVHcloud
 
Getting Started With My Next-Gen IP Load Balancing
Getting Started With My Next-Gen IP Load BalancingGetting Started With My Next-Gen IP Load Balancing
Getting Started With My Next-Gen IP Load BalancingOVHcloud
 
Lviv Outsourcing Forum 2016
Lviv Outsourcing Forum 2016 Lviv Outsourcing Forum 2016
Lviv Outsourcing Forum 2016 Lviv Startup Club
 
Puppet Troubleshooting
Puppet TroubleshootingPuppet Troubleshooting
Puppet TroubleshootingPuppet
 
RESTful API - Retour d'expérience
RESTful API - Retour d'expérienceRESTful API - Retour d'expérience
RESTful API - Retour d'expérienceChristophe Laprun
 
API et Mobile / Académies du Tourisme Numérique
API et Mobile / Académies du Tourisme NumériqueAPI et Mobile / Académies du Tourisme Numérique
API et Mobile / Académies du Tourisme NumériqueAlexandre Jubien
 
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...VMworld
 

Destaque (20)

[FR] Les connexions SDSL chez OVH Télécom
[FR] Les connexions SDSL chez OVH Télécom[FR] Les connexions SDSL chez OVH Télécom
[FR] Les connexions SDSL chez OVH Télécom
 
Webinar - Minimise your security risk with Hybrid Cloud and OVH vRack
Webinar - Minimise your security risk with Hybrid Cloud and OVH vRackWebinar - Minimise your security risk with Hybrid Cloud and OVH vRack
Webinar - Minimise your security risk with Hybrid Cloud and OVH vRack
 
Advanced Web Hosting
Advanced Web HostingAdvanced Web Hosting
Advanced Web Hosting
 
[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême
 
Introduction to OverTheBox
Introduction to OverTheBoxIntroduction to OverTheBox
Introduction to OverTheBox
 
[FR] Timeseries appliqué aux couches de bébé
[FR] Timeseries appliqué aux couches de bébé[FR] Timeseries appliqué aux couches de bébé
[FR] Timeseries appliqué aux couches de bébé
 
HTTPS: All you need to know
HTTPS: All you need to knowHTTPS: All you need to know
HTTPS: All you need to know
 
Discover the OVH Dedicated Cloud Webinar
Discover the OVH Dedicated Cloud WebinarDiscover the OVH Dedicated Cloud Webinar
Discover the OVH Dedicated Cloud Webinar
 
OVH Webinar: 10 questions you should ask your Cloud Service Provider
OVH Webinar: 10 questions you should ask your Cloud Service ProviderOVH Webinar: 10 questions you should ask your Cloud Service Provider
OVH Webinar: 10 questions you should ask your Cloud Service Provider
 
[FR] OVH Webinar : 10 questions à poser à votre Cloud Service Provider
[FR] OVH Webinar : 10 questions à poser à votre Cloud Service Provider[FR] OVH Webinar : 10 questions à poser à votre Cloud Service Provider
[FR] OVH Webinar : 10 questions à poser à votre Cloud Service Provider
 
Getting Started With My Next-Gen IP Load Balancing
Getting Started With My Next-Gen IP Load BalancingGetting Started With My Next-Gen IP Load Balancing
Getting Started With My Next-Gen IP Load Balancing
 
Lviv Outsourcing Forum 2016
Lviv Outsourcing Forum 2016 Lviv Outsourcing Forum 2016
Lviv Outsourcing Forum 2016
 
Puppet Troubleshooting
Puppet TroubleshootingPuppet Troubleshooting
Puppet Troubleshooting
 
RESTful API - Retour d'expérience
RESTful API - Retour d'expérienceRESTful API - Retour d'expérience
RESTful API - Retour d'expérience
 
API et Mobile / Académies du Tourisme Numérique
API et Mobile / Académies du Tourisme NumériqueAPI et Mobile / Académies du Tourisme Numérique
API et Mobile / Académies du Tourisme Numérique
 
POO
POOPOO
POO
 
API pour les nuls
API pour les nulsAPI pour les nuls
API pour les nuls
 
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
 
Api types
Api typesApi types
Api types
 
Ubisoft
UbisoftUbisoft
Ubisoft
 

Semelhante a [FR] C'est quoi une API ?

Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008Nouh Walid
 
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéLe Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéNoureddine BOUYAHIAOUI
 
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...sametmax
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)Restlet
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureSamir Arezki ☁
 
Nouveautés de App-V 5.0 et intégration avec System Center 2012
Nouveautés de App-V 5.0 et intégration avec System Center 2012Nouveautés de App-V 5.0 et intégration avec System Center 2012
Nouveautés de App-V 5.0 et intégration avec System Center 2012Microsoft Technet France
 
2018 06 nouvelles APIs checkpoint e-Xpert solutions
2018 06 nouvelles APIs checkpoint e-Xpert solutions2018 06 nouvelles APIs checkpoint e-Xpert solutions
2018 06 nouvelles APIs checkpoint e-Xpert solutionse-Xpert Solutions SA
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 LyonLeTesteur
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Guillaume Sautereau
 
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceWordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceVaisonet
 
Gestion des APIs avec Azure API Management - Samir AREZKI
Gestion des APIs avec Azure API Management - Samir AREZKIGestion des APIs avec Azure API Management - Samir AREZKI
Gestion des APIs avec Azure API Management - Samir AREZKISamir Arezki ☁
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Didier Girard
 
APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?Marius Zaharia
 
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...Patrick Guimonet
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Cédric Leblond
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Christophe Furmaniak
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 

Semelhante a [FR] C'est quoi une API ? (20)

Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008
 
Mysql
MysqlMysql
Mysql
 
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéLe Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
 
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec Azure
 
Nouveautés de App-V 5.0 et intégration avec System Center 2012
Nouveautés de App-V 5.0 et intégration avec System Center 2012Nouveautés de App-V 5.0 et intégration avec System Center 2012
Nouveautés de App-V 5.0 et intégration avec System Center 2012
 
2018 06 nouvelles APIs checkpoint e-Xpert solutions
2018 06 nouvelles APIs checkpoint e-Xpert solutions2018 06 nouvelles APIs checkpoint e-Xpert solutions
2018 06 nouvelles APIs checkpoint e-Xpert solutions
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 Lyon
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceWordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
 
Gestion des APIs avec Azure API Management - Samir AREZKI
Gestion des APIs avec Azure API Management - Samir AREZKIGestion des APIs avec Azure API Management - Samir AREZKI
Gestion des APIs avec Azure API Management - Samir AREZKI
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Bureau Metier - Version 20061010
Bureau Metier - Version 20061010
 
APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?
 
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 

Mais de OVHcloud

OVHcloud Startup Program : Découvrir l'écosystème au service des startups
OVHcloud Startup Program : Découvrir l'écosystème au service des startups OVHcloud Startup Program : Découvrir l'écosystème au service des startups
OVHcloud Startup Program : Découvrir l'écosystème au service des startups OVHcloud
 
Fine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP modelsFine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP modelsOVHcloud
 
How can you successfully migrate to hosted private cloud 2020
How can you successfully migrate to hosted private cloud 2020How can you successfully migrate to hosted private cloud 2020
How can you successfully migrate to hosted private cloud 2020OVHcloud
 
OVHcloud Partner Webinar - Data Processing
OVHcloud Partner Webinar - Data ProcessingOVHcloud Partner Webinar - Data Processing
OVHcloud Partner Webinar - Data ProcessingOVHcloud
 
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...OVHcloud
 
Webinar - VPS New Range
Webinar - VPS New RangeWebinar - VPS New Range
Webinar - VPS New RangeOVHcloud
 
OVHcloud Tech Talks S01E08 - GAIA-X pour les techs : OVHcloud & Scaleway vous...
OVHcloud Tech Talks S01E08 - GAIA-X pour les techs : OVHcloud & Scaleway vous...OVHcloud Tech Talks S01E08 - GAIA-X pour les techs : OVHcloud & Scaleway vous...
OVHcloud Tech Talks S01E08 - GAIA-X pour les techs : OVHcloud & Scaleway vous...OVHcloud
 
Webinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesWebinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesOVHcloud
 
OVHcloud Tech Talks S01E07 – Introduction à l’intelligence artificielle pour ...
OVHcloud Tech Talks S01E07 – Introduction à l’intelligence artificielle pour ...OVHcloud Tech Talks S01E07 – Introduction à l’intelligence artificielle pour ...
OVHcloud Tech Talks S01E07 – Introduction à l’intelligence artificielle pour ...OVHcloud
 
OVHcloud Tech Talks Fr S01E06 – BeeGFS, un filesystem orienté performance, ma...
OVHcloud Tech Talks Fr S01E06 – BeeGFS, un filesystem orienté performance, ma...OVHcloud Tech Talks Fr S01E06 – BeeGFS, un filesystem orienté performance, ma...
OVHcloud Tech Talks Fr S01E06 – BeeGFS, un filesystem orienté performance, ma...OVHcloud
 
OVHcloud Tech Talks Fr S01E05 – L’opérateur Harbor, une nécessité pour certai...
OVHcloud Tech Talks Fr S01E05 – L’opérateur Harbor, une nécessité pour certai...OVHcloud Tech Talks Fr S01E05 – L’opérateur Harbor, une nécessité pour certai...
OVHcloud Tech Talks Fr S01E05 – L’opérateur Harbor, une nécessité pour certai...OVHcloud
 
OVHcloud Tech-Talk S01E04 - La télémétrie au service de l'agilité
OVHcloud Tech-Talk S01E04 - La télémétrie au service de l'agilitéOVHcloud Tech-Talk S01E04 - La télémétrie au service de l'agilité
OVHcloud Tech-Talk S01E04 - La télémétrie au service de l'agilitéOVHcloud
 
OVHcloud TechTalks - ML serving
OVHcloud TechTalks - ML servingOVHcloud TechTalks - ML serving
OVHcloud TechTalks - ML servingOVHcloud
 
Logs @ OVHcloud
Logs @ OVHcloudLogs @ OVHcloud
Logs @ OVHcloudOVHcloud
 
Les APIs OpenStack
Les APIs OpenStackLes APIs OpenStack
Les APIs OpenStackOVHcloud
 
1 sysadmin vs 250 clusters de stockage
1 sysadmin vs 250 clusters de stockage1 sysadmin vs 250 clusters de stockage
1 sysadmin vs 250 clusters de stockageOVHcloud
 
Migrer 3 millions de sites sans maitriser leur code source ? Impossible mais ...
Migrer 3 millions de sites sans maitriser leur code source ? Impossible mais ...Migrer 3 millions de sites sans maitriser leur code source ? Impossible mais ...
Migrer 3 millions de sites sans maitriser leur code source ? Impossible mais ...OVHcloud
 
Industrialize Machine Learning
Industrialize Machine Learning Industrialize Machine Learning
Industrialize Machine Learning OVHcloud
 
OVHcloud – Enterprise Cloud Databases
OVHcloud – Enterprise Cloud DatabasesOVHcloud – Enterprise Cloud Databases
OVHcloud – Enterprise Cloud DatabasesOVHcloud
 
OVHcloud Hosted Private Cloud Platform Network use cases with VMware NSX
OVHcloud Hosted Private Cloud Platform Network use cases with VMware NSXOVHcloud Hosted Private Cloud Platform Network use cases with VMware NSX
OVHcloud Hosted Private Cloud Platform Network use cases with VMware NSXOVHcloud
 

Mais de OVHcloud (20)

OVHcloud Startup Program : Découvrir l'écosystème au service des startups
OVHcloud Startup Program : Découvrir l'écosystème au service des startups OVHcloud Startup Program : Découvrir l'écosystème au service des startups
OVHcloud Startup Program : Découvrir l'écosystème au service des startups
 
Fine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP modelsFine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP models
 
How can you successfully migrate to hosted private cloud 2020
How can you successfully migrate to hosted private cloud 2020How can you successfully migrate to hosted private cloud 2020
How can you successfully migrate to hosted private cloud 2020
 
OVHcloud Partner Webinar - Data Processing
OVHcloud Partner Webinar - Data ProcessingOVHcloud Partner Webinar - Data Processing
OVHcloud Partner Webinar - Data Processing
 
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...
OVHcloud Tech Talks S01E09 - OVHcloud Data Processing : Le nouveau service po...
 
Webinar - VPS New Range
Webinar - VPS New RangeWebinar - VPS New Range
Webinar - VPS New Range
 
OVHcloud Tech Talks S01E08 - GAIA-X pour les techs : OVHcloud & Scaleway vous...
OVHcloud Tech Talks S01E08 - GAIA-X pour les techs : OVHcloud & Scaleway vous...OVHcloud Tech Talks S01E08 - GAIA-X pour les techs : OVHcloud & Scaleway vous...
OVHcloud Tech Talks S01E08 - GAIA-X pour les techs : OVHcloud & Scaleway vous...
 
Webinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesWebinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud Databases
 
OVHcloud Tech Talks S01E07 – Introduction à l’intelligence artificielle pour ...
OVHcloud Tech Talks S01E07 – Introduction à l’intelligence artificielle pour ...OVHcloud Tech Talks S01E07 – Introduction à l’intelligence artificielle pour ...
OVHcloud Tech Talks S01E07 – Introduction à l’intelligence artificielle pour ...
 
OVHcloud Tech Talks Fr S01E06 – BeeGFS, un filesystem orienté performance, ma...
OVHcloud Tech Talks Fr S01E06 – BeeGFS, un filesystem orienté performance, ma...OVHcloud Tech Talks Fr S01E06 – BeeGFS, un filesystem orienté performance, ma...
OVHcloud Tech Talks Fr S01E06 – BeeGFS, un filesystem orienté performance, ma...
 
OVHcloud Tech Talks Fr S01E05 – L’opérateur Harbor, une nécessité pour certai...
OVHcloud Tech Talks Fr S01E05 – L’opérateur Harbor, une nécessité pour certai...OVHcloud Tech Talks Fr S01E05 – L’opérateur Harbor, une nécessité pour certai...
OVHcloud Tech Talks Fr S01E05 – L’opérateur Harbor, une nécessité pour certai...
 
OVHcloud Tech-Talk S01E04 - La télémétrie au service de l'agilité
OVHcloud Tech-Talk S01E04 - La télémétrie au service de l'agilitéOVHcloud Tech-Talk S01E04 - La télémétrie au service de l'agilité
OVHcloud Tech-Talk S01E04 - La télémétrie au service de l'agilité
 
OVHcloud TechTalks - ML serving
OVHcloud TechTalks - ML servingOVHcloud TechTalks - ML serving
OVHcloud TechTalks - ML serving
 
Logs @ OVHcloud
Logs @ OVHcloudLogs @ OVHcloud
Logs @ OVHcloud
 
Les APIs OpenStack
Les APIs OpenStackLes APIs OpenStack
Les APIs OpenStack
 
1 sysadmin vs 250 clusters de stockage
1 sysadmin vs 250 clusters de stockage1 sysadmin vs 250 clusters de stockage
1 sysadmin vs 250 clusters de stockage
 
Migrer 3 millions de sites sans maitriser leur code source ? Impossible mais ...
Migrer 3 millions de sites sans maitriser leur code source ? Impossible mais ...Migrer 3 millions de sites sans maitriser leur code source ? Impossible mais ...
Migrer 3 millions de sites sans maitriser leur code source ? Impossible mais ...
 
Industrialize Machine Learning
Industrialize Machine Learning Industrialize Machine Learning
Industrialize Machine Learning
 
OVHcloud – Enterprise Cloud Databases
OVHcloud – Enterprise Cloud DatabasesOVHcloud – Enterprise Cloud Databases
OVHcloud – Enterprise Cloud Databases
 
OVHcloud Hosted Private Cloud Platform Network use cases with VMware NSX
OVHcloud Hosted Private Cloud Platform Network use cases with VMware NSXOVHcloud Hosted Private Cloud Platform Network use cases with VMware NSX
OVHcloud Hosted Private Cloud Platform Network use cases with VMware NSX
 

[FR] C'est quoi une API ?

  • 1. C'est quoi une API ? Et les API chez OVH Vincent Cassé Développeur
  • 2.
  • 3. Pourquoi des API ? - Données sont affichées dans un navigateur, avec un design - Pas de structure définie - Destiné à être compris par des humains - Données structurées en fonction de leur contenu - Rendu brut, sans affichage particulier - Permet l'utilisation automatisé de ces données (donc par des machines) Du site web : Aux API :
  • 4. À quoi servent les API ? - Avoir une interface simple pour gérer des produits - Créer des applications pour des usages spécifiques - Créer une interaction avec d'autres sites et logiciels - Inventer de nouveaux usages - Protéger les accès aux comptes de ses clients - S'assurer que des programmes / sites externes utilisent leur produits - Permet de fournir un service automatisé (impression et envoi de factures...) Pour les développeurs : Pour le fournisseur :
  • 5. Les API : interface entre 2 services - Socket : transfert brut de données entre deux service → applications liées - RPC : définition d'une interface en C → applications “lourdes” - SOAP : définition d'une interface sur HTTP et formaté avec XML - REST : définition d'une interface sur HTTP et formaté avec XML ou JSON Petite histoire des interfaces
  • 6. API REST - Classement des ressources en arborescence - Utilisation des verbes HTTP : GET, POST, PUT et DELETE GET /domain/zone/ GET /domain/zone/{my_zone} GET /domain/zone/{my_zone}/record POST /domain/zone/{my_zone}/record GET /domain/zone/{my_zone}/record/{one_id_record} Exemples :
  • 7. Avantages et inconvénients de REST - Utilise un protocole accessible partout : HTTP - Beaucoup de langages possèdent un mapping avec HTTP - Simple à comprendre et tester Avantages - Le serveur ne peut pas initier la conversation Inconvénient
  • 8. À quoi servent les API ? - Gérer ses produits sans passer par les espaces client - Supprimer de nombreuses actions manuelles - Simplifier les déploiements - Améliorer ses processus de tests et d'intégration continue - Configurer rapidement des systèmes complexes ... - Tous les produits pourront se gérer depuis l’API - L'espace client est basé sur ces API By OVH Pour quoi faire ?
  • 9. Les API OVH api.ovh.com Produits OVH api.runabove.com Labs OVH api.hubic.com hubiC API Authentification script-able Authentification OAuth2
  • 10. Les API OVH api.soyoustart.com Labs serveurs dédiés api.kimsufi.com Serveurs dédiés discount Deprecated ovh.com/soapi/fr/ Authentification script-able Ancienne API SOAPi
  • 12. Authentification Script-able Authentification déportée chez OVH - Ne partage pas le mot de passe avec l’application tierce - Token d'authentification envoyé à l'API à chaque requête : la “Consumer key” - Validation du token par l'utilisateur et uniquement depuis {ovh.com|runabove.com} Droits d’accès Utilisateur Application Consumer key
  • 13. Authentification Script-able Granularité des droits - Droits différents pour chaque “Consumer Key” - Limitation du périmètre des appels en fonction des URL - Droits décrits avec des regex sur les URL Exemples : GET /me/bill/* GET,POST,DELETE,PUT /dedicated/server/{server_name}/* POST /dedicated/server/*/reboot
  • 14. Authentification Script-able Créer des identifiants d'application https://{ca,eu}.api.ovh.com/createApp/ https://api.runabove.com/createApp/ https://eu.api.kimsufi.com/createApp/ https://eu.api.soyoustart.com/createApp/
  • 15. Authentification Script-able Récupérer une “Consumer Key” POST https://eu.api.ovh.com/1.0/auth/credential "accessRules": [ { "method": "GET", "path": "/dedicated/server" } ], "redirection":"https://www.mywebsite.com/" { "validationUrl":"https://eu.api.ovh.com/auth/?credentialToken=iQ1joJExxxxxxOtrPQEeRh", "consumerKey":"one_consumer_key", "state":"pendingValidation" }
  • 17. La première requête ! GET https://eu.api.ovh.com/1.0/dedicated/server [ "ns1337.a.org", "ns42.a.org" ]
  • 18. Comment utiliser l'API ? Avec HTTP La signature est générée à l'aide des informations de la requête curl -H 'X-Ovh-Application:one_application_key’ -H 'X-Ovh-Timestamp:1369560945’ -H 'X-Ovh-Signature:$1$sign' -H 'X-Ovh-Consumer:one_consumer_key’ https://eu.api.ovh.com/1.0/dedicated/server/ "$1$" + SHA1_HEX(application_secret+"+"+consumer_key+"+"+METHOD+"+"+QUERY+"+"+BODY+"+"+TS TAMP)
  • 19. Comment utiliser l'API ? Sans réinventer la roue github.com/ovh
  • 21. Manager VPS personnalisé Comment redémarrer un VPS ?
  • 22. Manager VPS personnalisé import ovh client = ovh.Client() print client.post('/vps/vps42424242.ovh.net/reboot')
  • 23. Effectuer des actions de masse Une faille de sécurité impacte un port sur vos serveurs Comment appliquer une règle sur les IP protégées par le firewall OVH ?
  • 24. Effectuer des actions de masse def myurlencode (string): return urllib.quote(string).replace('/', '%2f') ips = client.get('/ip') for ip in ips: try: encodedIp = myurlencode(ip) inFirewall = client.get('/ip/' + encodedIP + '/firewall'); for ipInFirewal in inFirewall: content = { 'action': 'deny', 'protocol': 'tcp', 'sequence': 0, 'sourcePort': 80 } url = '/ip/' + encodedIP + '/firewall/' + myurlencode(inIp) + "/rule" client.post(url,content) print inIp , " in ", ip, " : ok" except requests.exceptions.HTTPError, e: print e , " " , ip
  • 25. Protéger ses déploiements Votre configuration Puppet est sur Git et vous déployez automatiquement Comment créer un snapshot à chaque commit avec l’API OVH et les hooks Git ?
  • 26. Protéger ses déploiements import ovh client = ovh.Client() print client.post('/vps/vps42424242.ovh.net/createSnapshot') .git/hooks/pre-commit
  • 27. Gérer les pics de charge Un site e-commerce peut subir de fortes charges Comment ajouter des serveurs PHP-FPM + Nginx lors de ces pics ?
  • 28. Gérer les pics de charge - Une IP load balancing - Un serveur web permanent - Un ou plusieurs /cloud en fonction de charge Serveur webServeur /cloud Outils nécessaires
  • 29. Gérer les pics de charge Connaître l'état du serveur web permanent pm.status_path = /status /etc/php5/fpm/pool.d/www.conf : /etc/nginx/sites-available/default : location /status { include fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; }
  • 30. Gérer les pics de charge curl http://mon_serveur_php/status?json Connaître l'état du serveur web permanent { "accepted conn": 1337, "active processes": 1, "idle processes": 2, "listen queue": 0, "listen queue len": 0, "max active processes": 10, "max children reached": 4, "max listen queue": 0, "pool": "www", "process manager": "dynamic", "start since": 3926, "start time": 1393946907, "total processes": 3 }
  • 31. Gérer les pics de charge Démarrer un serveur cloud flavor = "550757b3-36c2-4027-b6fe-d70f45304b9c"; #VPS-SSD-1 BHS image = "1b042c00-5978-4d75-9a7e-0d7f6ed5be76"; # Ubuntu 15.10 BHS project_cloud = "93c6bxxxxxxxxxxxfeb6"; r = requests.get('http://my_server/status?json') active_processes = json.loads(r.content)['active processes'] if active_processes >= 8: client.post("/cloud/project/" + project_cloud + "/instance", flavorId=flavor, imageId=image, name="php-fpm load peak", region="BHS1", userData="Script to run");     # Wait cloud machine is ready     ipInBackend = client.get('/ip/loadBalancing/ip-192.168.0.0/backend')     if not ('127.0.0.1' in ipInBackend):     content = { 'ipBackend': '127.0.0.1', 'probe': 'http' }         client.post('/ip/loadBalancing/ip-192.168.0.0/backend', content)         
  • 32. Aller plus loin - https://api.{ ovh | runabove | soyoustart | kimsufi | hubic }.com - Les consoles - github.com/ovh - api-subscribe@ml.ovh.net