0Pricing
PHP Academy · Lección

Rutas de API y controladores de recursos

Registre rutas RESTful y genere controladores de recursos con Artisan.

Rutas de API y controladores de recursos es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

Rutas de API en Laravel

Defina las rutas de API en routes/api.php. Estas rutas reciben automáticamente el prefijo /api y utilizan el grupo de middleware api (sin estado; no hay sesión ni cookies).

Ruta de API básica

Devuelva JSON desde un cierre.

<?php
Route::get("/users/{id}", function (int $id) {
    $user = User::findOrFail($id);
    return response()->json($user);
});

Rutas de recursos de API

Route::apiResource() registra 5 rutas RESTful (omite create y edit, que muestran formularios).

<?php
// routes/api.php
use App\Http\Controllers\Api\UserController;

Route::apiResource("users", UserController::class);
// GET /api/users           → index
// POST /api/users          → store
// GET /api/users/{user}    → show
// PUT /api/users/{user}    → update
// DELETE /api/users/{user} → destroy

Generar un controlador de API

Utilice el indicador --api para generar un controlador sin los métodos create y edit.

$ php artisan make:controller Api/UserController --api --model=User

Ejemplo de controlador de API

Un controlador de API devuelve respuestas JSON.

<?php
namespace App\Http\Controllers\Api;

class UserController extends Controller
{
    public function index(): JsonResponse
    {
        return response()->json(User::paginate(15));
    }

    public function show(User $user): JsonResponse
    {
        return response()->json($user);
    }

    public function store(StoreUserRequest $request): JsonResponse
    {
        $user = User::create($request->validated());
        return response()->json($user, 201);
    }

    public function destroy(User $user): JsonResponse
    {
        $user->delete();
        return response()->json(null, 204);
    }
}

Códigos de estado HTTP

Devuelva códigos de estado apropiados: 200 (Correcto), 201 (Creado), 204 (Sin contenido), 400 (Solicitud incorrecta), 401 (No autorizado), 403 (Prohibido), 404 (No encontrado), 422 (Entidad no procesable).

Validación con Form Request

Utilice Form Requests para crear reglas de validación claras y reutilizables.

$ php artisan make:request StoreUserRequest

Ejemplo de StoreUserRequest

Defina las reglas y la autorización en la clase de la solicitud.

<?php
class StoreUserRequest extends FormRequest
{
    public function authorize(): bool { return true; }
    public function rules(): array {
        return [
            "name"  => "required|string|max:255",
            "email" => "required|email|unique:users",
        ];
    }
}

Agrupar rutas de API

Agrupe las rutas de API con un prefijo y un espacio de nombres.

<?php
Route::prefix("v1")->middleware("auth:sanctum")->group(function () {
    Route::apiResource("posts", PostController::class);
    Route::apiResource("users", UserController::class);
});

except() y only()

Excluya o restrinja rutas específicas de un registro de recursos.

<?php
Route::apiResource("users", UserController::class)->only(["index", "show"]);
Route::apiResource("posts", PostController::class)->except(["destroy"]);

Recursos anidados

Registre rutas de recursos anidados para modelos relacionados.

<?php
Route::apiResource("users.posts", UserPostController::class);
// GET /api/users/{user}/posts/{post}

Resumen

Utilice Route::apiResource() para las rutas de API RESTful en routes/api.php. Genere controladores con --api. Devuelva JSON con códigos de estado HTTP adecuados. Valide mediante Form Requests.

Comprobación rápida

¿Cuántas rutas registra apiResource()?

Preguntas frecuentes

¿La lección «Rutas de API y controladores de recursos» es gratis?

Sí — el texto completo de «Rutas de API y controladores de recursos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Rutas de API y controladores de recursos»?

Registre rutas RESTful y genere controladores de recursos con Artisan. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Rutas de API y controladores de recursos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Rutas de API y controladores de recursos
  2. Recursos de API y respuestas JSON
  3. Autenticación con Laravel Sanctum
  4. Limitación de solicitudes y versionado de API
← Volver a PHP Academy