Bow Framework

Bow Framework

  • Documentation
  • Sponsors
  • API
  • Github
  • Rejoignez-nous

›Http

Démarrage

  • 🚀 Installation
  • 👨🏽‍🔧 App Configuration
  • ⚙️ App Structure
  • 👩🏿‍🏫 Avec un tutoriel
  • 👩🏽‍🍳 Guide de Contribution

Guide

  • 🚦 Routing
  • 👨🏽‍✈️ Contrôleurs
  • 🎨 Utiliser les vues
  • 🚥 Middlewares
  • 💿 Stockage de fichier
  • ✉️ Envoie de Mail
  • 🎎 i18n

Base de donnée

  • 🎯 Démarrage
  • 🏗 SQL Builder
  • 🧩 ORM Barry
  • 📑 Migration
  • 💉 Seeding

Http

  • 🚀 HTTP Request
  • 📦 HTTP Response
  • 🎬 HTTP Session

Sécurités

  • 👮🏽 Authentification
  • 🔐 Policier JWT Auth
  • 🙅🏽‍♂️ CSRF Protection

Misc

  • 📯 Front-End
  • 🏢 Approche service
  • 🪒 Application Helpers
  • 👨🏾‍💻 Bow Console
  • 📦 Bow Package
Edit

📦 HTTP Response

  • Introduction
  • Envoyé une réponse
    • Une chaine de caractère
    • Une Collection et Un tableau ou un Object
    • Un modèle BARRY
  • Modification de réponse
    • Modification du code d'erreur
    • Ajouter une entête HTTP
  • Envoyer un JSON
    • Protototype de la méthode json
    • Exemple d'envoye de JSON
  • Envoyer une réponse depuis les vues
    • Protototype de la méthode render
    • Exemple d'envoye de vue
    • Télécharger un fichier
    • Protototype de la méthode download
    • Exemple de télécharge
  • Redirection
    • Redirection avec to
      • Prototype de to
    • Redirection avec back
      • Prototype de back
    • Redirection avec des informations

Introduction

Tous les routes et contrôleurs doivent retourner une réponse à renvoyer à l'utilisateur. Bow fournit plusieurs façons différentes de renvoyer des réponses. La réponse la plus élémentaire est le retour d'une chaîne depuis une route ou un contrôleur. Bow convertira automatiquement la chaîne en une réponse HTTP complète.

Envoyé une réponse

Une chaine de caractère

Une réponse HTTP peut être une chaine de caractère.

$app->get('/', function ()
{
  return "Hello, world";
});

Une Collection et Un tableau ou un Object

Une réponse HTTP peut être une instance de Bow\Support\Collection.

$app->get('/array', function ()
{
  return [10, 2, 12, 'name' => 'Dakia'];
});

$app->get('/collection', function ()
{
  return collect([10, 2, 12]);
});

$app->get('/object', function ()
{
  return (object) ['name' => 'Dakia'];
});

Un modèle BARRY

La réponse HTTP peut être un Model ou une Collection de modèle, Bow la convertis directement en JSON.

use App\Models\User;

$app->get('/', function ()
{
  $model = User::where('id', 1)->first();
  
  return $model;
});

Modification de réponse

Modification du code d'erreur

Il est très important d'ajouter les codes d'erreurs à votre réponse HTTP si vous développez un API RESTFUL. La méthode status vous permet de le faire.

use App\Models\User;

$app->get('/', function ()
{
  $response = response();
  
  return $response->status(400);
});

Pour plus d'information sur les code HTTP. Consultez ce lien.

Si dans votre API, la requête a été traitée avec succès et que vous n'avez pas d’information à renvoyer. Il est préférable de lui retourne un 204 qu'un 200 :tada:.

Ajouter une entête HTTP

Souvent vous serez amener à ajouter d'autre entête HTTP à votre réponse HTTP. La méthode addHeader et withHeaders vous permet de le faire.

$response->addHeader('Content-Type', 'application/json');

Nous pouvez ajouter plusieur entête en même temps:

$response->withHeaders([
  'Content-Type' => 'application/json',
  'X-Proto-Value' => 1
]);

Envoyer un JSON

Dans les applications REST (Api REST/RESTFUL) les informations sont généralement retournés en JSON. Pour envoyer un information JSON au client, vous pouvez utiliser le help json ou la méthode json sur l'instance de Bow\Http\Response.

Protototype de la méthode json

$response->json($data, $code, $headers);
ParamètreTypeDescription
$dataArray, stdClass, Iterable, JsonSerializableLes données à sérialiser
$codeIntLe code du status HTTP
$headersArrayLes entêtes à ajouter sur le réponse

Exemple d'envoye de JSON

Exemple:

$data = ['message' => 'Hello, World'];

return $response->json($data, $code = 200, [
  'X-Proto-Value' => 1 // Juste un test
]);

Avec le HELPER:

$data = ['message' => 'Hello, World'];

return json($data, 200, [
  'X-Proto-Value' => 1 // Juste un test
]);

Ici, Bow ajout directement l'entête HTTP Content-Type à application/json, donc plus besoin de l'ajouter manuellement dans le $headers.

Envoyer une réponse depuis les vues

Souvent vous pouvez utiliser un instance de Bow\Http\Response pour faire le rendu de vue via la méthode render.

Protototype de la méthode render

$response->render($name, $data, $code, $headers);

| Paramètre | Type | Description | |----------|------| | $name | String - Le nom d'une vue à rendre | | $data | Array - Les données à envoyer à la vue | | $code | Int - Le code du status HTTP | | $headers | Array - Les entêtes à ajouter à la réponse |

Exemple d'envoye de vue

Exemple:

$users = User::where('id', '!=', 2)->get();

return $response->render('users', ['users' => $users], 200, [
  'X-Proto-Value' => 1 // Juste un test
]);

Télécharger un fichier

Souvent vous serez amener à mettre en place des systèmes de téléchargement de fichier zip ou image, encore vous allez faire des applications où il faut s'authentifier avant de télécharge des fichiers du type dropbox. Bow offre un API simple via la classe Bow\Http\Response pour télécharger un fichier avec la méthode download.

Protototype de la méthode download

$response->download($file, $filename = null, $headers, $disposition = 'attachment');
ParamètreTypeDescription
$fileStringLe chemin absolu du fichier
$filenameStringLe nouveau du fichier par defaut est null
$headersArrayLes entêtes à ajouter à la réponse
$dispositionStringIndiquant si le contenu devrait être affiché en ligne dans le navigateur, c'est-à-dire en tant que page Web, ou en pièce jointe téléchargé et enregistré localement.

Plus d'information sur l'entête Content-Disposition.

Exemple de télécharge

Exemple:

$file = '/path/to/file.png';

return $response->download($file, 'image.png');

Redirection

Vous serez certainement amener à faire des redirections vers d'autres ressources et cela en réalité constitue une réponse HTTP. Les méthodes to et back (qui comme son nom l'indique permet de faire une revenir sur en arrière) de la classe Bow\Http\Redirect.

Redirection avec to

La redirection avec to permet de renvoyer l'utilisateur sur une autre la page.

return redirect()->to($path);

Prototype de to

ParamètreTypeDescription
$pathStringL'URL de rédirection
return redirect()->to('/users');

Redirection avec back

La redirection avec back permet de renvoyer l'utilisateur sur la page précédente.

return redirect()->back($status_code);

Prototype de back

ParamètreType
$status_codeInt - Le code HTTP de la réponse par defaut est égale à 302
return redirect()->back();

Redirection avec des informations

Vous pouvez aussi faire la redirection avec les informations envoyés par l'utilisateur et ceci avec la méthode withInput, withFlash comme ceci:

 return redirect()->back()->withInput();
 // Ou
 return redirect()->to("/home")->withInput();

Avec un message flash

 return redirect()->back()->withFlash('success', 'Papac');

Notez que vous pouvez donner une tableau de valeur à withInput qui sera une collection d'information à envoyer à utilisateur.

Il manque quelque chose ?

Si vous rencontrez des problèmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @BowFramework ou sur directement sur le github.

Last updated on 10/05/2021
← 🚀 HTTP Request🎬 HTTP Session →
  • Introduction
  • Envoyé une réponse
    • Une chaine de caractère
    • Une Collection et Un tableau ou un Object
    • Un modèle BARRY
  • Modification de réponse
    • Modification du code d'erreur
    • Ajouter une entête HTTP
  • Envoyer un JSON
    • Protototype de la méthode json
    • Exemple d'envoye de JSON
  • Envoyer une réponse depuis les vues
    • Protototype de la méthode render
    • Exemple d'envoye de vue
    • Télécharger un fichier
    • Protototype de la méthode download
    • Exemple de télécharge
  • Redirection
    • Redirection avec to
    • Redirection avec back
    • Redirection avec des informations
  • Il manque quelque chose ?
Bow Framework
Documentation
Commencer Bow FrameworkVoulez-vous contribuer ?API Reference
Communautés
CodeDivoireGalsen DevCode Learning ClubAyiyikoh FabLab
En plus
TwitterSlackGitHub
Copyright © 2021 développé avec 💚 par Franck DAKIA