Wiki · Aller plus loin

L'API locale

Piloter TurboTexte depuis vos propres scripts, en HTTP sur votre machine.

À quoi ça sert

TurboTexte expose une petite API HTTP sur votre propre machine. Elle permet de faire depuis un script ce que vous feriez à la main dans la fenêtre : créer des raccourcis en masse, exporter la liste, activer un groupe, ou suspendre la substitution le temps d'une tâche.

Deux usages reviennent souvent : générer des centaines de raccourcis à partir d'un tableur ou d'une base, et synchroniser sa liste entre plusieurs postes avec ses propres outils.

Adresse et sécurité

Le serveur n'écoute que sur l'interface locale :

http://127.0.0.1:8420/api/v1

« Interface locale » veut dire que seuls les programmes tournant sur votre ordinateur peuvent l'atteindre. Elle n'est accessible ni depuis votre réseau ni depuis Internet, même si votre pare-feu est grand ouvert.

Toutes les routes exigent un jeton d'authentification, sauf /ping. Le jeton se trouve dans les préférences de l'application, onglet API, où vous pouvez aussi changer le port, désactiver le serveur, et régénérer le jeton si vous pensez l'avoir laissé traîner.

Transmettez-le dans l'en-tête Authorization :

curl -H "Authorization: Bearer VOTRE_JETON" \
     http://127.0.0.1:8420/api/v1/status

L'en-tête X-TurboTexte-Token est également accepté. Le passage par la chaîne de requête fonctionne aussi, mais évitez-le : une URL se retrouve dans les journaux et dans l'historique du terminal.

Deux options en ligne de commande

--no-api démarre l'application sans le serveur, le temps d'une exécution. --api-port 9000 change le port sans toucher à votre préférence enregistrée. Les deux servent surtout aux tests.

Les raccourcis

MéthodeCheminEffet
GET/combosLister, avec recherche, filtrage et pagination.
POST/combosCréer un raccourci.
DELETE/combosSupprimer plusieurs raccourcis d'un coup.
GET/combos/{id}Lire un raccourci, par identifiant ou par abréviation.
PATCH/combos/{id}Modifier les champs fournis.
DELETE/combos/{id}Supprimer un raccourci.
POST/combos/{id}/duplicateDupliquer.
POST/combos/{id}/previewÉvaluer le contenu sans l'insérer nulle part.
GET/combos/exportExporter en JSON, CSV ou aide-mémoire.
POST/combos/importImporter une liste.
POST/combos/saveForcer l'enregistrement sur le disque.
POST/combos/reloadRecharger depuis le disque.

Les groupes

MéthodeCheminEffet
GET/groupsLister les groupes.
POST/groupsCréer un groupe.
GET/groups/{id}Lire un groupe, par identifiant ou par nom.
PATCH/groups/{id}Modifier les champs fournis.
DELETE/groups/{id}Supprimer un groupe.
GET/groups/{id}/combosLister les raccourcis du groupe.
POST/groups/{id}/moveDéplacer le groupe dans la liste.
POST/groups/sortTrier les groupes par nom.
POST/groups/{id}/import-csvImporter des raccourcis CSV dans le groupe.
GET/groups/{id}/export-csvExporter le groupe en CSV.

L'application

MéthodeCheminEffet
GET/pingVérifier que l'API répond. Seule route sans jeton.
GET/statusÉtat complet de l'application.
GET/routesLister toutes les routes de l'API.
POST/app/enableActiver la substitution.
POST/app/disableSuspendre la substitution.
POST/app/toggleBasculer l'état.
POST/app/showAfficher la fenêtre principale.
POST/app/pickerOuvrir le sélecteur de raccourcis.
POST/app/quitQuitter proprement.
GET/app/logLire les dernières lignes du journal.

Préférences, historique, sauvegardes

MéthodeCheminEffet
GET/preferencesLire toutes les préférences.
PATCH/preferencesModifier les préférences fournies.
POST/preferences/resetRétablir les valeurs par défaut.
GET/api-settingsLire la configuration de l'API.
POST/api-settings/tokenRégénérer le jeton.
GET/statsStatistiques d'usage sur une période.
GET/historyLister les modifications enregistrées.
POST/history/undoAnnuler la dernière modification.
POST/history/redoRétablir.
GET/backupsLister les sauvegardes.
POST/backupsCréer une sauvegarde.
POST/backups/restoreRestaurer une sauvegarde.
POST/text/expandDévelopper un texte sans l'insérer.
GET/text/matchesLister les raccourcis correspondant à une saisie.

Description machine

L'application sert elle-même une description OpenAPI 3.1 à l'adresse /api/v1/openapi.json, et une documentation détaillée à /api/v1/docs. Ces deux adresses font toujours foi : elles décrivent la version que vous avez installée, là où cette page décrit l'état général de l'API.

La description OpenAPI se charge dans la plupart des outils clients, ce qui permet de générer le code d'appel plutôt que de l'écrire à la main.

Un exemple complet

Créer un raccourci, puis vérifier qu'il est bien enregistré :

JETON="votre-jeton"
BASE="http://127.0.0.1:8420/api/v1"

curl -s -X POST "$BASE/combos" \
     -H "Authorization: Bearer $JETON" \
     -H "Content-Type: application/json" \
     -d '{"keyword":";;ml","snippet":"prenom.nom@exemple.fr"}'

curl -s "$BASE/combos/;;ml" -H "Authorization: Bearer $JETON"

Si le premier appel renvoie une erreur d'authentification, c'est le jeton qui est en cause. S'il ne répond pas du tout, vérifiez avec curl http://127.0.0.1:8420/api/v1/ping que le serveur est bien démarré et que le port correspond à celui des préférences.