Newer
Older
web-services / data-termsuite / swagger.json
{
    "openapi": "3.0.0",
    "info": {
        "title": "data-termsuite - Web service TermSuite",
        "description": "Extraction terminologique d'un corpus via [TermSuite](https://termsuite.github.io/).\n\nComme ces services s'appliquent à un corpus entier, la réponse finale n'est pas\ndonnée immédiatement après l'appel.  \nAu contraire, un service comme [`/v1/en`](#data-termsuite/post-v1-en) renverra une réponse JSON contenant un champ `value` donnant l'identifiant du traitement en cours.  \nEt comme on lui passe aussi l'URL d'un *webhook*, cela lui permet, une fois le\ntraitement terminé, de signaler qu'on peut dès lors utiliser le service de\nrécupération (les routes qui commencent par `/v1/retrieve`).  \n\nExemple: traitement d'un corpus de textes en anglais\n\n### Préparation du corpus\n\nOn crée une archive `.tar.gz` de fichiers `.txt`.\n\nSi on a un répertoire `corpus` contenant ces fichiers `.txt`:\n\n```txt\ncorpus\n├── W2BVWkiVT.txt\n├── W2CeZqyNR.txt\n├── W77S4YQqx.txt\n├── W8kkWKySy.txt\n├── WcKPMhj3p.txt\n├── WG5aHJqba.txt\n├── Wh3itHprz.txt\n├── WhW6tZ6NH.txt\n├── WjS3eZyG4.txt\n├── Wk6YCLbzZ.txt\n├── WmiHPaEdf.txt\n├── WmJYZipzE.txt\n├── Wn8KqZXeX.txt\n├── WPpTXDTJB.txt\n├── WpRjkUwwB.txt\n├── WtCWN5q5Y.txt\n├── WtJ4NNWhq.txt\n├── WTxTnPGxt.txt\n├── WwzTseBX6.txt\n├── WXer3K9QE.txt\n├── Wymfn7YTm.txt\n└── WzXkqs4zt.txt\n```\n\nLa commande Linux suivante crée le fichier `corpus.tar.gz` conforme à ce qui est\nattendu par le service web.\n\n```bash\ntar czf corpus.tar.gz corpus\n```\n\n### Appel du traitement\n\nIci, il faut donner un [*webhook*](https://fr.wikipedia.org/wiki/Webhook) pour\nconnaître l'instant où on peut (ou non) récupérer le résultat.\n\n```bash\ncurl -X 'POST' \n  'http://data-termsuite.services.istex.fr/v1/en?indent=true&nb=10' \n  -H 'accept: application/json' \n  -H 'X-Webhook-Success: https://webhook.site/2caab8b5-fc96-4d7a-bb94-bdda20977830' \n  -H 'X-Webhook-Failure: https://webhook.site/2caab8b5-fc96-4d7a-bb94-bdda20977830' \n  -H 'Content-Type: application/x-gzip' \n  --data-binary '@corpus.tar.gz'\n```\n\nL'appel précédent renvoie une réponse du type:\n\n```json\n[{\n    \"id\": \"termsuite-en\",\n    \"value\": \"qiCVLyh5p\"\n}]\n```\n\nEt le serveur du *webhook* recevra, une fois le traitement terminé, un JSON\ncontenant un champ `identifier` (la même valeur que `value` dans la réponse au\n`curl`), et un champ `state` qui devrait être `ready`.  \nIci c'est `qiCVLyh5p`.\n\n### Récupération du résultat\n\nEnfin, on peut demander la réponse via\n[`/v1/retrieve-csv`](#data-termsuite/post-v1-retrieve-csv), en n'oubliant\nd'adapter `value`:\n\n```bash\ncurl -X 'POST' \n  'http://localhost:31976/v1/retrieve-csv' \n  -H 'accept: text/csv' \n  -H 'Content-Type: text/csv' \n  -d '[\n  {\n    \"value\": \"qiCVLyh5p\"\n  }\n]'\n```\n\nqui donnera ce résultat\n\n```csv\n\"key\",\"freq\"\n\"n: sediment\",\"10\"\n\"nn: proto-paratethys sea\",\"9\"\n\"a: glacial\",\"7\"\n\"n: mmes\",\"7\"\n\"a: tropical\",\"7\"\n\"n: precipitation\",\"7\"\n\"n: genus\",\"7\"\n\"n: obliquiloculata\",\"7\"\n\"n: telescopus\",\"6\"\n\"nn: clay mineral\",\"6\"\n```",
        "version": "2.0.0",
        "termsOfService": "https://services.istex.fr/",
        "contact": {
            "name": "Inist-CNRS",
            "url": "https://www.inist.fr/nous-contacter/"
        }
    },
    "servers": [
        {
            "x-comment": "Will be automatically completed by the ezs server."
        },
        {
            "url": "http://vptdmjobs.intra.inist.fr:49162/",
            "description": "Latest version for production",
            "x-profil": "Standard"
        }
    ],
    "tags": [
        {
            "name": "data-termsuite",
            "description": "Web service TermSuite",
            "externalDocs": {
                "description": "Plus de documentation",
                "url": "https://github.com/inist-cnrs/web-services/tree/main/services/data-termsuite"
            }
        }
    ]
}