Capa HTTP

La capa HTTP es la encargada de gestionar la comunicación entre el sistema y los clientes externos a través del protocolo HTTP. En aplicaciones Laravel, esta capa incluye principalmente controladores, rutas y peticiones que reciben las solicitudes de los usuarios.

Dentro de una arquitectura hexagonal, la capa HTTP actúa como un adaptador de entrada (Input Adapter). Su función principal es recibir una petición, transformarla en datos que entienda la aplicación y ejecutar el caso de uso correspondiente.

Es importante destacar que los controladores no deben contener lógica de negocio, ya que esta pertenece al dominio o a los casos de uso de la capa de aplicación.

Responsabilidades de la capa HTTP

Las principales responsabilidades de esta capa son:

Esta capa es la más cercana al framework Laravel y al cliente que consume la aplicación.

Estructura de carpetas

app/
 ├── Http/
 │   └── Controllers/
 │       └── TaskController.php

Ejemplo de controlador

En este ejemplo implementaremos un controlador encargado de crear una nueva tarea utilizando el caso de uso CreateTaskUseCase.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Application\Task\CreateTaskUseCase;

class TaskController extends Controller
{
    private CreateTaskUseCase $createTask;

    public function __construct(CreateTaskUseCase $createTask)
    {
        $this->createTask = $createTask;
    }

    public function store(Request $request)
    {
        $task = $this->createTask->execute(
            $request->input('title')
        );

        return response()->json([
            'id' => $task->getId(),
            'title' => $task->getTitle()->value(),
            'completed' => $task->isCompleted()
        ]);
    }
}
Anterior: InfraestructuraSiguiente: Agradecimientos