doc/pages/01.administrate/09.tutorials/12.api/admin_api.md
tituspijean 77d721485a
Refactor admin guide
Co-authored-by: ljf (zamentur) <zamentur@users.noreply.github.com>
Co-authored-by: nathanael-h <7300309+nathanael-h@users.noreply.github.com>
2022-08-04 19:49:06 +02:00

2 KiB
Raw Blame History

title template taxonomy routes
Administration from the API or an external application docs
category
docs
default
/admin_api

All command line actions can also be ran from the web API. The API is available at https://your.server/yunohost/api. For now there's no documentation on the various routes... but you can get an idea by looking at the actionmap here (in particular the api stuff).

Using cURL

You must first retrieve a login cookie to perform the actions. Here is an example with cURL:

# Login (with admin password)
curl -k -H "X-Requested-With: customscript" \
        -d "password=supersecretpassword" \
        -dump-header headers \
        https://your.server/yunohost/api/login

# GET example
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

Using a PHP class

To simplify the remote administration of a YunoHost instance in CHATONS/Librehosters projects, API classes have been developed by users.

For example, this PHP class will allow you to administer your YunoHost instance from a PHP application (website, capacity management tool...).

Here is an example of PHP code to add a user to your YunoHost instance:

require("ynh_api.class.php");
$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', 
        '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;
}