Répondre avec des fichiers, JSON et redirections en Laravel

Voici une proposition de meta description : "Améliorez vos réponses HTTP avec Laravel ! Découvrez comment utiliser file(), json() et redirectTo() pour créer de

Mahmoud DEVO
Mahmoud DEVO
December 28, 2025 2 min read
Répondre avec des fichiers, JSON et redirections en Laravel

Introduction

Les réponses de Laravel sont un élément crucial dans la construction des applications web robustes et efficaces. Dans ce tutoriel, nous allons examiner en détail les différents types de réponses disponibles dans Laravel, ainsi que les moyens d’y accéder. Nous couvrirons également les macro-réponses personnalisées et l’interface Responsable.

Les Réponses Prédéfinies

Les réponses prédéfinies sont les plus courantes et les plus faciles à utiliser. Elles permettent de retourner des données sous forme de JSON, de fichier ou de redirection.

1. Utiliser la méthode file()

La méthode file() permet de retourner un fichier. Elle prend deux paramètres : le chemin vers le fichier à retourner et les en-têtes facultatifs.

public function invoice($id)
{
    return response()->file("./invoices/{$id}.pdf", ['header' => 'value']);
}

2. Utiliser la méthode json()

La méthode json() permet de retourner des données sous forme de JSON. Elle prend en paramètre les données à retourner.

public function contacts()
{
    return response()->json(Contact::all());
}

3. Utiliser la méthode jsonp()

La méthode jsonp() permet de retourner un objet JavaScript sous forme de JSONP. Elle prend en paramètre le nom du callback.

public function jsonpContacts(Request $request)
{
    return response()
        ->json(Contact::all())
        ->setCallback($request->input('callback'));
}

Les Réponses de Redirection

Les réponses de redirection permettent de rediriger l’utilisateur vers une autre page ou vers la page précédente.

1. Utiliser la méthode redirectTo()

La méthode redirectTo() permet de retourner une réponse de redirection.

public function store()
{
    // Si la validation échoue...
    return back()->withInput();
}

2. Utiliser les fonctions globales redirect() et back()

Les fonctions globales redirect() et back() permettent également de retourner des réponses de redirection.

return redirect('account/payment');
return back()->withInput();

Les Macro-Réponses Personnalisées

Les macro-réponses personnalisées permettent de définir des modifications à apporter aux réponses et à leurs contenus.

1. Créer un macro-réponse personnalisée

Un exemple de création d’un macro-réponse personnalisée :

class AppServiceProvider
{
    public function boot()
    {
        Response::macro('myJson', function ($content) {
            return response(json_encode($content))
                ->withHeaders(['Content-Type' => 'application/json']);
        });
    }
}

L’Interface Responsable

L’interface Responsable permet de définir des objets responsables qui peuvent être retournés sous forme de réponse.

1. Créer un objet responsable

Un exemple de création d’un objet responsable :

use Illuminate\Contracts\Support\Responsable;

class MyJson implements Responsable
{
    public function __construct($content)
    {
        $this->content = $content;
    }

    public function toResponse()
    {
        return response(json_encode($this->content))
            ->withHeaders(['Content-Type' => 'application/json']);
    }
}

Conclusion

Dans ce tutoriel, nous avons examiné les différents types de réponses disponibles dans Laravel. Nous avons également vu comment créer des macro-réponses personnalisées et comment utiliser l’interface Responsable pour définir des objets responsables.

Sujets à explorer plus en profondeur :

  • Utiliser les middleware pour traiter les requêtes et les réponses.
  • Créer des objets responsables pour gérer les vues et les données.

Liens utiles :

Advertisement

In-Article Ad

Dev Mode

Share this article

Mahmoud DEVO

Mahmoud DEVO

Senior Full-Stack Developer

I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.

Enjoyed this article?

Subscribe to get more tech content delivered to your inbox.

Related Articles