Ejecutando comandos desde la API
Clase 11 de 33 • Curso Avanzado de Laravel
Contenido del curso
Entorno de trabajo y repaso de Laravel
Manejo de tu base de datos con Laravel
La terminal de Laravel
Eventos y tareas de Laravel
Manejo de errores
El corazón de Laravel
Creación de paquetes
- 26

Cómo crear paquetes Laravel con Composer
08:51 min - 27
Propiedades para manejo de dependencias
02:02 min - 28
Comprende el archivo composer.json
02:23 min - 29

Cómo Composer carga clases automáticamente
04:18 min - 30

Crear mis propios Services Providers
08:58 min - 31

Cómo publicar archivos con Service Provider
04:12 min - 32

Instalando paquetes desde GitHub con Composer
10:35 min - 33

Publicar tu paquete PHP en Packages
03:12 min
Potencia tu flujo en Laravel con una ruta limpia que ejecuta un comando de verificación de email y confirma el envío desde Mailtrap o servidores SMTP. Aquí verás cómo conectar un controlador, el método send, Artisan::call, una ruta POST en api.php y una respuesta JSON para cerrar el ciclo con pruebas claras.
¿Cómo llamar comandos Artisan desde un controlador?
Para ejecutar lógica existente como un comando desde tu aplicación, crea o abre un Newsletter Controller y define un método Send que use Artisan. La idea: centralizar el disparo del command y devolver un JSON confirmando que “todo okay”.
¿Qué controlador y método se crean?
- Crear o reutilizar Newsletter Controller.
- Declarar el método público Send.
- Importar el package de Artisan.
- Preparar datos de respuesta en JSON.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
// use App\Console\Commands\SendEmailVerificationCommand; // Importa tu comando si aplica.
class NewsletterController extends Controller
{
public function send()
{
// Ejecuta el comando de verificación de email.
// Opción 1 (por clase):
// Artisan::call(SendEmailVerificationCommand::class);
// Opción 2 (por nombre de comando):
// Artisan::call('send:email-verification');
$data = ['todo' => 'okay'];
return response()->json($data);
}
}
¿Cómo usar Artisan call con --class?
- Usa el método Artisan::call para invocar un comando.
- Pasa el nombre del comando o su clase con el modificador “--class”.
- Mantén el método Send enfocado a orquestar y responder en JSON.
¿Cómo exponer el endpoint en api.php?
Debes apuntar una ruta POST a “newsletter” que invoque el Newsletter Controller y su método Send. Así podrás lanzar el proceso desde tu API y verificar resultados.
¿Qué ruta HTTP se configura?
- Tipo de ruta: POST.
- URI: /api/newsletter.
- Acción: NewsletterController@send.
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\NewsletterController;
Route::post('newsletter', [NewsletterController::class, 'send']);
¿Cómo preparar datos y probar el envío de verificación?
El comando busca en la base de datos usuarios creados hace siete días y sin verificar su correo. Por eso, antes de probar la ruta, prepara un registro que cumpla esas condiciones y luego dispara la petición desde un cliente HTTP.
¿Qué datos en la base de datos se ajustan?
- Establecer email_verified_at en nulo.
- Fijar la fecha de creación con siete días de antigüedad.
- Guardar cambios en la base de datos.
¿Cómo validar con un cliente HTTP y Mailtrap o SMTP?
- Enviar una petición POST a /api/newsletter desde tu cliente HTTP.
- Confirmar que la respuesta sea 200: “todo okay”.
- Revisar Mailtrap o tus servidores SMTP para ver la verificación de email recibida.
- Confirmar que el endpoint de newsletter está funcionando.
¿Te animas a extender la API? Crea dos endpoints para calificar usuarios y productos. Comparte dudas o avances en los comentarios.