doc/pages/02.contribute/06.api/admin_api.fr.md

62 lines
2.2 KiB
Markdown
Raw Normal View History

2020-11-11 11:47:10 +01:00
---
title: Administration depuis l'API ou une application externe
template: docs
taxonomy:
category: docs
---
2019-01-03 17:44:33 +01:00
Toutes les actions exécutables en ligne de commande le sont également via une API. LAPI est accessible à ladresse https://votre.serveur/yunohost/api.
2020-09-14 10:00:42 +02:00
Pour le moment, il n'existe pas de documentation des différentes routes... mais vous pouvez trouver l'actionmap [ici](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml) (en particulier les clefs `api`)
2020-09-14 10:00:42 +02:00
## Avec cURL
2020-09-14 10:00:42 +02:00
Il faut dabord récupérer un cookie de connexion pour ensuite réaliser les actions. Voici un exemple avec cURL :
2019-01-03 17:44:33 +01:00
```bash
2019-01-03 17:44:33 +01:00
# Login (avec mot de passe admin)
curl -k -H "X-Requested-With: customscript" \
-d "password=supersecretpassword" \
-dump-header headers \
https://your.server/yunohost/api/login
# Example de GET
curl -k -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-L -b headers -X GET https://your.server/yunohost/api/ROUTE \
| grep } | python -mjson.tool
```
2020-09-14 10:00:42 +02:00
## Avec une classe PHP
2019-01-03 17:44:33 +01:00
Pour simplifier ladministration à distance dune instance YunoHost dans le cadre dun projet CHATONS/Librehosters, des classes API ont été développées par des utilisateurs.
2020-09-14 10:00:42 +02:00
Par exemple, cette [classe PHP](https://github.com/scith/yunohost-api-php) vous permettra dadministrer votre instance YunoHost depuis une application PHP (site Web, outil de gestion de capacité...).
2017-02-05 06:41:50 +01:00
Voici un exemple de code PHP permettant dajouter un utilisateur dans votre instance YunoHost :
2019-01-03 17:44:33 +01:00
```php
require("ynh_api.class.php");
2017-02-05 06:41:50 +01:00
$ynh = new YNH_API("adresse IP du serveur YunoHost ou nom dhôte", "mot de passe administrateur");
if ($ynh->login()) {
$domains = $ynh->get("/domains");
$first_domain = $domains['domains'][0];
$arguments = array(
'username' => 'test',
'password' => 'yunohost',
2017-02-05 06:41:50 +01:00
'firstname' => 'Prénom',
'lastname' => 'Nom',
'mail' => 'test@'.$first_domain,
'mailbox_quota' => '500M'
);
$user_add = $ynh->post("/users", $arguments);
print_r($user_add);
} else {
print("Login to YunoHost failed.\n");
exit;
}
```