{
    "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\nune réponse JSON contenant un champ `value` donnant l'identifiant du traitement\nen 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 `.json`.\n\nSi on a un répertoire `corpus` contenant ces fichiers `.json`:\n\n```txt\ncorpus\n├── W2BVWkiVT.json\n├── W2CeZqyNR.json\n├── W77S4YQqx.json\n├── W8kkWKySy.json\n├── WcKPMhj3p.json\n├── WG5aHJqba.json\n├── Wh3itHprz.json\n├── WhW6tZ6NH.json\n├── WjS3eZyG4.json\n├── Wk6YCLbzZ.json\n├── WmiHPaEdf.json\n├── WmJYZipzE.json\n├── Wn8KqZXeX.json\n├── WPpTXDTJB.json\n├── WpRjkUwwB.json\n├── WtCWN5q5Y.json\n├── WtJ4NNWhq.json\n├── WTxTnPGxt.json\n├── WwzTseBX6.json\n├── WXer3K9QE.json\n├── Wymfn7YTm.json\n└── WzXkqs4zt.json\n```\n\nChaque fichier `.json` est un objet JSON, sur une seule ligne, contenant deux champs:\n\n1. `id`: le nom du fichier\n2. `value`: le texte à traiter.\n\nExemple pour `corpus/W2BVWkiVT.json`:\n\n```json\n{\"id\":\"W2BVWkiVT.json\",\"value\":\" Modeling Slab Temperature: A Reevaluation of the Thermal Parameter . [...]\"}\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": "3.0.4",
        "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:49179/",
            "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"
            }
        }
    ]
}