Forge

L'objet Response

Un contrôleur Forge retourne toujours une réponse HTTP explicite. Il n'y a pas de sortie implicite ni de magie cachée.

Cycle HTML — via View

Request → Router → Controller → View → Response HTML

return BaseController.render(
    "welcome/response_example.html",  # ← la View
    context={"cle": "valeur"},
    request=request,
)
# → HTTP 200 OK  +  Content-Type: text/html

Redirection

return BaseController.redirect("/welcome")
# → HTTP 302 Found  +  Location: /welcome

Cycle JSON — sans View

Request → Router → Controller → Response JSON

from core.http.response import JSONResponse
return JSONResponse({"status": "ok", "version": "1.0"})
# → HTTP 200 OK  +  Content-Type: application/json
# ↑ pas de View : le contrôleur construit directement la réponse

Réponse avec code HTTP personnalisé

return BaseController.render(
    "errors/404.html",
    request=request,
    status=404,
)
# → HTTP 404 Not Found  +  page d'erreur personnalisée

Principe Forge : le contrôleur retourne toujours une valeur. Il n'écrit jamais directement dans le flux de sortie. Forge transmet la réponse au serveur HTTP qui se charge de l'envoi.

← Requête Routage →