Propuesta didáctica UP 05: API Rest¶
Introducción¶
La Unidad de Programación "API Rest" tiene como objetivo dotar al alumnado de los conocimientos y habilidades necesarios para diseñar e implementar interfaces de programación de aplicaciones (API) siguiendo los principios del estilo arquitectónico REST. A lo largo de esta unidad se abordará el desarrollo de APIs utilizando Laravel 11, desde su configuración inicial hasta la creación de rutas, controladores y respuestas en formato JSON. Se hará especial énfasis en la implementación de operaciones CRUD sobre recursos de la base de datos, el uso de métodos personalizados para necesidades específicas del negocio, y la integración de validaciones y excepciones adaptadas al contexto API. El estudiante aprenderá a aplicar prácticas de desarrollo profesional que respetan la separación de responsabilidades, el uso eficiente de recursos, y el diseño de sistemas escalables y mantenibles.
Además, se trabajará la interacción y validación de estas APIs mediante herramientas especializadas como Postman e Insomnia, que permiten probar y depurar endpoints sin necesidad de integrar aún la capa cliente. Asimismo, se introducirá el uso de Laravel Sanctum como sistema de autenticación ligera basada en tokens, esencial para garantizar la seguridad en entornos de producción. Esta unidad también contempla el tratamiento de errores y excepciones desde una perspectiva centrada en la API, asegurando respuestas claras, controladas y consistentes. Con ello, el alumnado estará preparado para diseñar APIs modernas y robustas, capaces de ser consumidas por frontend en JavaScript, aplicaciones móviles o sistemas externos, promoviendo una arquitectura orientada a servicios.
Cuestionario inicial¶
¡Ponte a prueba!
-
¿Qué comando es necesario ejecutar para publicar el archivo
api.php
en Laravel 11?- php artisan make:api
- php artisan serve:api
- php artisan install:api
- php artisan route:api
Respuesta correcta
Respuesta correcta: c. php artisan install:api
-
¿Qué formato devuelve una API REST al cliente, típicamente, cuando se usa Laravel?
- HTML
- XML
- JSON
- TXT
Respuesta correcta
Respuesta correcta: c. JSON
-
¿Qué método de Laravel se utiliza para devolver una respuesta en formato JSON desde un controlador?
echo()
return view()
response()->json()
return data()
Respuesta correcta
Respuesta correcta: c.
response()->json()
-
¿Dónde se deben registrar las rutas de una API en un proyecto Laravel?
- routes/web.php
- app/Providers/RouteServiceProvider.php
- public/index.php
- routes/api.php
Respuesta correcta
Respuesta correcta: d. routes/api.php
-
¿Cuál es el propósito principal de herramientas como Postman o Insomnia en el desarrollo de APIs?
- Diseñar la base de datos
- Validar formularios HTML
- Probar y depurar endpoints de una API
- Compilar el código PHP
Respuesta correcta
Respuesta correcta: c. Probar y depurar endpoints de una API
Resumen UP¶
Resumen Unidad de Programación
Unidad de Programación
UP 05. API Rest
Duración
10 Sesiones - 20H
Unidad de Trabajo de la UP
Resultados de Aprendizaje
RA7. Desarrolla servicios web reutilizables y accesibles mediante protocolos web, verificando su funcionamiento.
Preconocimiento
Conocimientos de PHP, Laravel y de acceso a datos.
Objetivos Generales
- OGf: Seleccionar lenguajes, objetos y herramientas, interpretando las especificaciones para desarrollar aplicaciones web con acceso a bases de datos.
- OGg: Utilizar lenguajes, objetos y herramientas, interpretando las especificaciones para desarrollar aplicaciones web con acceso a bases de datos.
- OGh: Generar componentes de acceso a datos, cumpliendo las especificaciones, para integrar contenidos en la lógica de una aplicación web.
- OGm: Emplear herramientas específicas, integrando la funcionalidad entre aplicaciones, para desarrollar servicios empleables en aplicaciones web.
- OGn: Evaluar servicios distribuidos ya desarrollados, verificando sus prestaciones y funcionalidad, para integrar servicios distribuidos en una aplicación web.
- OGñ: Verificar los componentes de software desarrollados, analizando las especificaciones, para completar el plan de pruebas.
- OGs: Desarrollar la creatividad y el espíritu de innovación para responder a los retos que se presentan en los procesos y organización de trabajo y de la vida personal.
- OGt: Tomar decisiones de forma fundamentada analizando las variables implicadas, integrando saberes de distinto ámbito y aceptando los riesgos y la posibilidad de equivocación en las mismas, para afrontar y resolver distintas situaciones, problemas o contingencias.
Competencias Profesionales, Personales y Sociales.
- CPRd: Gestionar bases de datos, interpretando su diseño lógico y verificando integridad, consistencia, seguridad y accesibilidad de los datos.
- CPRj: Desarrollar e integrar componentes software en el entorno del servidor web, empleando herramientas y lenguajes específicos, para cumplir las especificaciones de la aplicación.
- CPRk: Desarrollar servicios para integrar sus funciones en otras aplicaciones web, asegurando su funcionalidad.
- CPRl: Integrar servicios y contenidos distribuidos en aplicaciones web, asegurando su funcionalidad.
- CPRn: Elaborar y mantener la documentación de los procesos de desarrollo, utilizando herramientas de generación de documentación y control de versiones.
- CPEq: Resolver situaciones, problemas o contingencias con iniciativa y autonomía en el ámbito de su competencia, con creatividad, innovación y espíritu de mejora en el trabajo personal y en el de los miembros del equipo.
Objetivos Didácticos
- OD1: Comprender los principios del diseño REST y su aplicación en el desarrollo de APIs.
- OD2: Implementar operaciones CRUD sobre recursos mediante controladores API en Laravel.
- OD3: Probar y depurar endpoints API utilizando herramientas como Postman o Insomnia.
Contenidos Específicos
- CES1. Principios del diseño REST y estructura de una API RESTful
- CES2. Configuración y uso del archivo
api.php
en Laravel - CES3. Creación de controladores API y rutas para operaciones CRUD
- CES4. Envío y recepción de datos en formato JSON
- CES5. Pruebas de *endpoints* mediante herramientas como Postman o Insomnia
Actividades Formativas
Actividades de enseñanza y aprendizaje. AEA
Criterios Evaluación
Instrumento Evaluación
Instrumento Calificación
AC 801. Activar API en el proyecto de la lista de tareas.
CE7a CE7b CE7c
IE1
IC1
PR 802. Documentar el proceso de activación de la API en la SA.
CE7a CE7b CE7c
IE2
IC2
AC 803. Controlador para listar posts en la API.
CE7d CE7e
IE1
IC1
PR 804. Obtener listado de productos vía API en el e-commerce.
CE7d CE7e CE7h
IE2
IC2
AC 805. Modificar controlador de tarea para crear, borrar y editar.
CE7e
IE1
IC1
PR 806. Modificar controlador de productos para crear, borrar y editar en la SA.
CE7e CE7h
IE2
IC2
RE 807. Inicio Reto 4.
CE7a CE7b CE7c CE7d CE7e CE7h
IE2
IC2
AC 808. Documentar el consumo de la API en la SA.
CE7f CE7g
IE1
IC1
AC 810. Listar todas las tareas.
CE7e CE7f CE7g
IE1
IC1
PR 811. Listar todos los productos y pedidos en el e-commerce.
CE7e CE7f CE7g CE7h
IE2
IC2
AC 813. Adaptar el proyecto del blog al manejo de excepciones.
CE7e CE7f CE7g CE7h
IE1
IC1
PR 814. Adaptar el proyecto del e-commerce al manejo de excepciones.
CE7e CE7f CE7g CE7h
IE2
IC2
RE 815. Desarrollar el Reto 4.
CE7a CE7b CE7c CE7d CE7e CE7f CE7g CE7h
IE2
IC2
Prueba de Auditoría.
Criterios Evaluación
Instrumento Evaluación
Instrumento Calificación
RE 816. Presentación del Reto 4.
CE7a CE7b CE7c CE7d CE7e CE7f CE7g CE7h
IE3
IC4
Actividades de refuerzo. AR
Criterios Evaluación
Instrumento Evaluación
Instrumento Calificación
AR 809. Probar el servicio REST generado en AC 805.
CE7f CE7g
IE1
IC1
Actividades de profundización. AP
Criterios Evaluación
Instrumento Evaluación
Instrumento Calificación
AP 812. Listar pedidos de un cliente.
CE7e CE7f CE7g CE7h
IE1
IC1
Validación Criterios de Evaluación¶
Resultado de Aprendizaje
RA7. Desarrolla servicios web reutilizables y accesibles mediante protocolos web, verificando su funcionamiento.
Duración
10 Sesiones - 20H
CCEE
Actividades Obligatorias
(AC / PR / RE / CU / PO)
Actividades Refuerzo / Profundización
(AR / AP)
Puntos
Relevancia porcentual
CE7a
AC 801, PR 802, RE 807, RE 814, RE 815
5
12.5%
CE7b
AC 801, PR 802, RE 807, RE 814, RE 815
5
12.5%
CE7c
AC 801, PR 802, RE 807, RE 814, RE 815
5
12.5%
CE7d
AC 803, PR 804, RE 807, RE 814, RE 815
10
12.5%
CE7e
AC 803, PR 804, AC 805, PR 806, RE 807, AC 810, PR 811, AC 812, PR 813, RE 814, RE 815
AP 813
20
12.5%
CE7f
AC 808, AC 810, PR 811, AC 812, PR 813, RE 814, RE 815
AR 809, AP 813
15
12.5%
CE7g
AC 808, AC 810, PR 811, AC 812, PR 813, RE 814, RE 815
AR 809, AP 813
15
12.5%
CE7h
PR 802, PR 804, PR 806, RE 807, PR 811, AC 812, PR 813, RE 814, RE 815
AP 813
10
12.5%
Referencias¶
- Web: ¿Qué es una API REST? por IBM
- Web: ¿Qué es una API REST? por Red Hat
- Manual: Documentación oficial
Links de interés¶
- Web: Roy T. Fielding
- Vídeo: ¿Que es un API REST? ✔️ ¿Para que sirve un API RESTful? 🛰️ ¿El futuro del Backend? por Victor Robles
- Vídeo: 6 consejos para que DISEÑES BIEN tu API REST por Manuel Zapata
- Curso: Curso de POSTMAN COMPLETO Y DESDE CERO por dfbastidas