Skip to content

2. Desarrollo de componentes

Temas del programa: 3.1

Préstamos Equipos
Presentación Controller web + API Controller API
Form Request Form Request
Resource Resource
Negocio PrestamoService (Eloquent basta)
Datos Repository + Model Model
└──── PostgreSQL ────┘

No todo módulo necesita todas las capas

Un contrato que permite a otro programa usar tu sistema sin conocer su código

Dónde

La URL del recurso

Cómo

El método HTTP y los datos

Qué recibes

El código de estado y el JSON

Actividad A2 — el contrato de la API de tu proyecto antes de programarla

  • Todo es un recurso con nombre en plural
  • Cada recurso tiene su propia URL
  • El método dice la acción no la URL
  • Cada petición trae todo lo necesario incluido el token
  • El código de estado dice el resultado
CorrectoIncorrecto
POST /api/v1/prestamosPOST /api/crearPrestamo
MétodoUsoSeguroIdempotente
GETLeerSíSí
POSTCrearNoNo
PUTReemplazarNoSí
PATCHModificar parteNoNo
DELETEEliminarNoSí

RFC 9110 HTTP Semantics secciones 9.2.1 y 9.2.2

2xx éxito

200 leer · 201 creado · 204 sin cuerpo

4xx el cliente

401 · 403 · 404 · 409 · 422 · 429

422

Los datos están mal formados como una fecha de fin antes del inicio

409

Los datos son válidos pero chocan con el estado del sistema como un equipo ya reservado

401

No sé quién eres

403

Sé quién eres y no puedes hacer esto

JSON ── petición ──► deserializar → validar → Service → PostgreSQL
JSON ◄─ respuesta ── serializar (API Resource) ◄──────────┘
snake_case

fecha_inicio

ISO 8601 UTC

2026-11-10T10:00:00Z

Sin sensibles

Nunca password

JSON no tiene tipo fecha · RFC 8259

public function store(GuardarPrestamoRequest $request, PrestamoService $service)
{
$prestamo = $service->crear([
...$request->validated(),
'user_id' => $request->user()->id,
]);
return PrestamoResource::make($prestamo->load('equipo'))
->response()->setStatusCode(201);
}

Form Request y Service son los del Bloque II sin cambios · user_id sale del token nunca del cuerpo

Este tema se practica en el Laboratorio 2 — API REST del proyecto.

Continúa con 3. Manejo de errores.