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