2 : Répondre aux incidents et aux demandes d'assistance et d'évolution
- 1.2.1 Traiter des demandes concernant les services réseau et système, applicatifs 1.5 : Mise à disposition des utilisateurs d'un service informatique
- 1.5.1 Déployer un service
Contexte
NelmioApiDocBundle a été intégré pour générer automatiquement une interface Swagger UI interactive directement depuis les annotations du code.
Structure des fichiers concernés
Trois éléments ont été mis en place :
nelmio_api_doc.yaml: configuration principale du bundle (zones exposées, titre, version)- Attributs PHP
#[OA\...]: annotation des controllers pour décrire chaque route - Route
/api/doc: point d'accès à l'interface Swagger UI
Configuration — nelmio_api_doc.yaml
nelmio_api_doc:
documentation:
info:
title: internal-text-to-speech
description: generate audio from text
version: 1.0.0
areas:
path_patterns:
- ^/text-to-speech
- ^/elevenlabs
Annotation d'un controller
#[OA\Post(
summary: "Génère un fichier audio à partir d'un texte",
description: "Génère un fichier audio WAV en utilisant l'API TTS sélectionnée.",
requestBody: new OA\RequestBody(
required: true,
description: "Requête JSON avec champs obligatoires: text, lang, voice, idQuestion",
content: new OA\JsonContent(
ref: new Model(type: TextToSpeechDto::class),
)
),
responses: [
new OA\Response(response: 200, description: "Fichier audio généré",
content: new OA\MediaType(mediaType: "audio/wav")
),
new OA\Response(response: 400, description: "Erreur de validation"),
new OA\Response(response: 415, description: "Content-Type invalide"),
new OA\Response(response: 500, description: "Erreur interne serveur"),
]
)]
Interface Swagger UI
