Uso de servicios
-
Descripción:
Implementar un servicio genérico en JavaScript para la comunicación con una API REST, y una clase hija específica (
ServicioRecursosSanitarios) que herede de él. Esta clase especializada permitirá añadir un nuevo recurso sanitario mediante una peticiónPOST, enviando los datos introducidos en un formulario HTML.
El HTML proporcionado no debe modificarse.
El flujo esperado es:
- El usuario completa el formulario con los datos del nuevo recurso.
- Al pulsar el botón “Guardar”, se envía una petición
POSTa la API con el contenido del formulario. - Se muestra un mensaje de confirmación o error según el resultado.
-
Valor que aporta: Introduce programación orientada a objetos aplicada al trabajo con APIs REST, reforzando conceptos de herencia, asincronía y manejo de formularios. Simula un entorno real de desarrollo donde se separa la lógica de comunicación del control de la interfaz.
-
Criterios de aceptación:
-
No se modifica el archivo HTML.
-
Se define una clase
Serviciogenérica con métodosget(url)ypost(url, data). -
Se define una subclase
ServicioRecursosSanitariosque extiendaServicioy use una URL base (por ejemplo,"https://api/recursos"). -
El formulario permite introducir un nuevo recurso (
tipo,nombre,disponible). -
Al enviar el formulario:
- Se crea un objeto con esos datos.
- Se envía al servidor con
fetch()y métodoPOST. - Se muestra un mensaje de éxito o error en pantalla.
-
No se recarga la página al enviar el formulario.
-
-
Pruebas
-
Al abrir el HTML, el usuario puede rellenar los campos del formulario.
-
Al pulsar “Guardar”, se ejecuta una petición
POSTa la API. -
Si la petición es correcta (200–201), aparece un mensaje:
“Recurso creado correctamente”
-
Si la petición falla, aparece:
“Error al crear el recurso”
-
El formulario no se recarga tras enviar los datos.
-
Ejemplo de cuerpo enviado en la petición:
{ "nas": "NAS 11", "UCO": "BCG XII", "M1N": "FUTER", "M2N": "DIVCAST", "M3N": "BRI_XII", "base": "Base El Goloso", "comunidadAutonoma": "Madrid", "provincia": "Madrid", "localidad": "Madrid", "codigoPostal": "28760", "servicioMedicoReferencia": "Base El Goloso", "observaciones": "", "nombre": "Laura Martínez", "tipoPersonal": "MEDICO", "empleo": "Cap", "telefono": "8154678", "correo": "lmarfer@mde.com", }
-
-
Elementos relacionados: #6
-
Tiempo estimado: 45 min