.net 6 Minimal Api Return File

3 min read Jun 03, 2024
.net 6 Minimal Api Return File

Retourner des fichiers avec Minimal API dans .NET 6

L'API minimale dans .NET 6 offre un moyen élégant et concis de créer des API RESTful. En plus de gérer les requêtes et réponses de données, elle permet également de retourner des fichiers aux clients.

Utilisation de la méthode File pour renvoyer des fichiers

La méthode File de l'objet HttpContext est le moyen le plus simple de renvoyer un fichier depuis votre API minimale. Voici un exemple de code qui permet de renvoyer un fichier PDF :

app.MapGet("/download/{fileName}", async (HttpContext context, string fileName) =>
{
    var filePath = Path.Combine("Files", fileName + ".pdf");

    // Vérifiez si le fichier existe
    if (!File.Exists(filePath))
    {
        return Results.NotFound();
    }

    // Renvoyez le fichier
    return Results.File(filePath, "application/pdf");
});

Ce code définit un point de terminaison GET qui accepte un paramètre fileName. Le code récupère le chemin complet du fichier et vérifie s'il existe. Si le fichier existe, il est renvoyé au client avec le type MIME approprié.

Personnalisation du retour du fichier

Vous pouvez personnaliser le comportement de retour du fichier en utilisant des options supplémentaires de la méthode File. Par exemple, vous pouvez spécifier le nom du fichier à télécharger, la disposition du contenu et l'encodage.

return Results.File(filePath, "application/pdf", "monfichier.pdf", true, Encoding.UTF8);

Contrôle des erreurs

Il est important de gérer les erreurs potentielles lors du retour des fichiers. Par exemple, si le fichier n'existe pas, vous pouvez renvoyer un code d'erreur 404.

// ...
if (!File.Exists(filePath))
{
    return Results.NotFound();
}
// ...

Conclusion

En utilisant la méthode File, vous pouvez facilement renvoyer des fichiers depuis votre API minimale .NET 6. N'oubliez pas de gérer les erreurs et de personnaliser le comportement de retour pour répondre aux besoins de votre application.

Related Post