Exploration des API de NextCloud
Les principales API de NextCloud
NextCloud dispose de deux principales API :
- OCS, qui permet l'accès et la manipulation du contenu ;
- OCC, qui permet d'administration de la plateforme.
OCS (Open Collaboration Services)
L'API OCS (Open Collaboration Services) est une API basée sur REST et WebDAV conçue pour faciliter la connexion d'applications à une plate-forme de collaboration de contenu.
L'API couvre les fonctionnalités de gestion de fichiers de base, telles que l'accès aux fichiers, le partage, la gestion des versions et les commentaires sur les fichiers. Il couvre également la communication (chat, appels vidéo), le calendrier, les tâches et plus encore.
Actuellement, Nextcloud implémente et développe l'API OCS, mais cette dernière est également enrichie par d'autres projets et par de nombreuses applications et outils tiers.
Exemples d'applications compatibles avec l'API OCS :
- Collabora Online
- Joplin
- KDE Connect
- *NextCloud
- Nextcloud Deck
- Nextcloud News
- OwnCloud
- Rainloop
- Roundcube
OCC (Own Cloud Console)
La commande occ
de Nextcloud (Own Cloud Console) est l'interface de ligne de commande de Nextcloud.
Elle permet d'effectuer de nombreuses opérations d'administration courante, comme l'installation et la mise à niveau de l'instance Nextcloud, la gestion des utilisateurs, le cryptage, la gestion des mots de passe, les paramètres LDAP, etc...
occ
est un script PHP qui se trouve dans le répertoire nextcloud
(par exemple /var/www/nextcloud
sur Ubuntu Linux). Vous devez l'exécuter avec l'utilisateur qui a lancé le serveur Web pour éviter tout problème de droit sur vos fichiers et répertoires Nextcloud.
Exploration des API de NextCloud
Les exemples suivants ont été testés à l'aide de l'outil Postman et partent sur le principe que l'instance Nextcloud de test est installée localement pour répondre au port 8080 http://localhost:8080.
Créer un token de connexion
La requête POST suivante retourne un lien permettant de se connecter :
http://localhost:8080/index.php/login/v2
La requête POST envoyée à l'adresse retournée précédemment retournera un token (Bearer Token) qu'il faudra passer en paramètre dans toutes les requêtes d'interrogation de NextCloud :
Nom paramètre | Valeur |
---|---|
Authorisation | Bearer Token = Token crée au desssus |
Par défaut, la durée de vie d'un token de session est de 20 minutes.
NB : Il est également possible de passer login et mot de passe dans une requête, mais cette solution est très peu sécurisée (elle doit donc être évitée) :
Nom paramètre Valeur Authorisation Basic Auth = login / mot de passe
Rafraîchir son Token
Il est possible de prolonger la durée de vie d'un token de session à l'aide de la requête POST suivante :
http://localhost:8080/ocs/v2.php/apps/oauth2/api/v1/token
Accompagnée des paramètres suivants :
Nom paramètre | Valeur |
---|---|
grant_type | refresh_token |
refresh_token | Token de session à renouveler |
Example de batch avec Curl :
curl -X POST \
http://localhost:8080/ocs/v2.php/apps/oauth2/api/v1/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'
Mettre à jour le contenu d'un ficher
Requête POST : - Header : OCS-APIRequest = true - Body : FileId = Nouveau contenu du fichier
http://localhost:8080/ocs/v2.php/apps/dav/api/v1/direct
Visualiser un fichier
Requête GET (Ce lien est celui récupéré au dessus)
http://localhost:8080/remote.php/direct/RNG6EOU11qysgu4AN5A4Lo9TRw72dDG2wzWT5VU3ZBFiwaOMZE0jZdjYtxnV
Récupérer les informations sur un utilisateur (GET)
http://localhost:8080/ocs/v1.php/cloud/users/**Nom de l'utilisateur**
http://localhost:8080/ocs/v1.php/cloud/users
Obtenir les "capacités" (GET)
http://localhost:8080/ocs/v1.php/cloud/capabilities
Auto complet et recherche d'utilisateurs (GET)
- Header : OCS-APIRequest = true
http://localhost:8080/ocs/v2.php/core/autocomplete/get?search=JOANNE%40EMAIL.ISP&itemType=%20&itemId=%20&shareTypes[]=8&limit=2'