diff --git a/README.md b/README.md index 9530021..991e1fa 100644 --- a/README.md +++ b/README.md @@ -188,22 +188,48 @@ ### Documentation OpenAPI -Chaque service, chaque route, doit être documenté en respectant la norme [OpenAPI](https://swagger.io/specification/) 3.0 (swagger). +Chaque service, chaque route, doit être documenté en respectant la norme +[OpenAPI](https://swagger.io/specification/) 3.0 (swagger). -La documentation de chaque route doit être placée dans le fichier `.ini` correspondant à sa route API. +La documentation de chaque route doit être placée dans le fichier `.ini` +correspondant à sa route API. -Pour placer la document openapi dans les fichiers `.ini`, la syntaxe Swagger au format JSON doit être convertie au format "dot notation" +Pour placer la document openapi dans les fichiers `.ini`, la syntaxe Swagger au +format JSON doit être convertie au format "dot notation" + +Chaque fichier `.ini` doit contenir les champs de métadonnées suivant: + +- `mimeType`: dont la valeur la plus courante est `application/json` +- `post.operationId`: formée sur le modèle de la route (ou du chemin du fichier + `.ini` depuis la racine de l'instance) +- `post.summary`: la description courte du service (celle qui apparaîtra en + premier dans [OpenAPI](https://openapi.services.istex.fr/)) +- `post.description`: la description longue du service (idéalement, elle + contient des explications détaillées, celles que l'on mettait auparavant dans + le README de l'instance), au format Markdown (attention, tout doit rester sur + la même ligne; pour insérer un passage à la ligne souvent nécessaire en + Markdown, utiliser les caractères `^M`). Exemple : +Cette partie de métadonnées + ```ini -post.responses.default.description = Return a JSON as received JSON. -post.responses.default.content.application/json.schema.$ref = #/components/schemas/anyValue -post.summary = Parse and split JSON and return it. +# Entrypoint output format +mimeType = application/json + +# OpenAPI Documentation - JSON format (dot notation) +post.operationId = post-v1-lda +post.summary = Classifie un ensemble de documents parmi 5 topics. +post.description = Crée à partir de l'ensemble des documents un champ `lda` constitué de 5 _topics_ eux-mêmes caractérisés par 10 mots.^M> **Note**: Le texte doit être en anglais.^M^M> **Note 2**: La qualité des résultats dépend du corpus et les _topics_ doivent être analysés par l'utilisateur avant d'être utilisés. +post.tags.0 = data-computer post.requestBody.required = true -post.requestBody.content.application/json.schema.$ref = #/components/schemas/anyValue ``` +donnera dans l'OpenAPI: + +![post-v1-lda dans l'interface swagger d'OpenAPI](images/openapi-post-v1-lda.png) + #### Tags Si vous souhaitez enrichir la documentation par défaut, en ajoutant des *tags*, diff --git a/images/openapi-post-v1-lda.png b/images/openapi-post-v1-lda.png new file mode 100644 index 0000000..42d432a --- /dev/null +++ b/images/openapi-post-v1-lda.png Binary files differ