NEW
Font size
Worksheets1 Teoría: Métodos y Buenas Prácticas Fundamentales
Total questions: 25
Worksheet time: 13mins
Necesitas actualizar parcialmente el email de un usuario sin tocar otros campos. ¿Qué combinación ruta+método es más adecuada?
PATCH /users/:userId con cuerpo parcial JSON
PUT /users/:userId con todos los campos vacíos
POST /users/:userId enviando solo el email
GET /users/:userId pasando email por query
Tu equipo sube un fichero grande y confidencial al servidor. ¿Qué método deberías proponer y por qué?
POST porque envía datos extensos y puede cifrarlos
GET porque el navegador lo usa por defecto
PATCH porque cambia solo algunos bytes del fichero
DELETE porque elimina datos temporales tras subir
Debes leer un listado de usuarios filtrando por país sin modificar nada. ¿Cuál es la mejor petición?
GET /users?country=ES
POST /users -d { "country": "ES" }
GET /users/countries/ES
GET /countries/:countryId/users
Te piden escoger entre PUT y PATCH para una API móvil con ancho de banda limitado cuando solo cambian dos campos. ¿Qué justificaría tu elección?
PATCH porque minimiza payload y riesgos de sobrescritura
PUT porque obliga a enviar la representación completa
PUT porque evita problemas de idempotencia
PATCH porque realiza lecturas de recursos
Tienes un middleware de errores en una API. ¿Cuál es la principal ventaja de centralizar el manejo de errores en ese punto único?
Evitar duplicar lógica y asegurar respuestas coherentes
Reducir la latencia en todas las rutas de negocio
Permitir que cada controlador defina su propio formato
Eliminar la necesidad de códigos de estado HTTP
Debes definir un formato estándar de error. ¿Qué conjunto mínimo aporta mayor utilidad diagnóstica y consistencia?
code, error, message con descripciones claras
timestamp, userAgent y locale del cliente
stacktrace completo del servidor remoto
endpoint interno y variables de entorno sensibes
Tu API ofrece filtrado por parámetros. ¿Cuál diseño de query string facilita combinar múltiples criterios sin romper compatibilidad?
Campos por parámetro con valores exactos o rangos
Un único parámetro filter con JSON anidado
Cabeceras personalizadas con claves opacas
Body en GET con estructura multipart form
Necesitas ordenar resultados por fecha. ¿Qué convención reduce ambigüedad y favorece clientes diversos?
Usar sort=fecha y order=1 o -1
Enviar un booleano asc=true o false
Deducir el orden según la zona horaria
Codificar el orden en el path dinámico
Tu endpoint devuelve muchos registros. Debes elegir paginado para minimizar coste del servidor y cursar saltos arbitrarios. ¿Qué técnica eliges y por qué?
Offset y limit por su simplicidad y saltos directos
Cursor basado en tokens por su aleatoriedad
Paginado por páginas por su estilo humano
Streaming continuo por su control total del cliente
Un cliente reclama discrepancias al reordenar y paginar simultáneamente. ¿Qué práctica mitiga resultados inconsistentes entre páginas?
Ordenar por un campo estable e indexado
Desactivar el cache del navegador siempre
Incrementar el tamaño máximo de página
Forzar orden aleatorio en cada consulta
Un error 404 se produce por ruta inexistente. ¿Qué respuesta estandarizada mejora la depuración sin filtrar detalles internos?
code:404, error:Not Found, message:Path not found
stack:full trace, env:prod, debug:true
sql:error relation missing, schema name
path:/srv/app, reason:file system missing
Quieres guiar a clientes por los siguientes pasos de navegación en recursos paginados. ¿Qué estándar añade enlaces relacionados en la propia respuesta?
HATEOAS con hipervínculos de navegación
OAuth con scopes y permisos
CORS con orígenes permitidos
ETag con validación condicional
Al implementar filtrado, un equipo propone devolver todos los datos y filtrar en el cliente. ¿Cuál es el principal problema de esa propuesta?
Aumenta transferencia y carga del servidor
Mejora el rendimiento y la caché pública
Reduce la consistencia del esquema de errores
Evita la necesidad de parámetros de consulta
Debes impedir que un token robado se use indefinidamente. ¿Qué diseño aumenta la seguridad sin cambiar credenciales?
Tokens sin expiración para evitar cortes
Tokens con expiración y refresco controlado
Contraseñas en cada cabecera de petición
Firmas de respuesta sin verificación
Tienes que diseñar un microservicio que almacene usuarios en memoria para pruebas. ¿Qué decisión minimiza coste de arranque y facilita pruebas rápidas sin base de datos?
Precargar algunos usuarios en el arranque con loaders
Implementar un clúster Redis para cache distribuida
Usar un ORM conectado a PostgreSQL desde inicio
Cargar usuarios aleatorios desde una API pública
En una revisión de código detectas que el endpoint devuelve 200 OK cuando un recurso no existe. ¿Qué cambio propones para un uso correcto de códigos HTTP?
Devolver 404 Not Found cuando el id no existe
Mantener 200 OK pero incluir un campo error
Usar 204 No Content para cualquier error
Cambiar a 301 Moved Permanently con redirección
Un endpoint GET /usuarios/{id} devuelve 500 al recibir un id inexistente. ¿Qué plan propones?
Validar entrada y devolver 404 con mensaje claro
Capturar error y seguir devolviendo 500 genérico
Convertir GET en POST para evitar errores
Retornar 204 sin cuerpo en todos los casos
En una auditoría, debes evidenciar uso correcto de códigos HTTP. ¿Qué mapa decisión aplicas ante creación exitosa?
Responder 201 Created con Location del recurso
Responder 200 OK sin cabeceras adicionales
Responder 202 Accepted sin seguimiento
Responder 409 Conflict con cuerpo vacío
Para comparar rendimiento entre REST y GraphQL en tu caso, ¿qué experimento diseñas?
Pruebas con métricas de latencia y payload real
Encuesta al equipo sobre preferencias personales
Revisión de memes en redes de desarrolladores
Lectura de documentación sin medir escenarios
Diseñas manejo de errores uniforme. ¿Qué respuesta recomendar al enviar JSON con detalles?
Estructura con code, message y trace opcional
Solo enviar el stack completo siempre
Responder texto plano sin campos consistentes
Usar HTML con estilos incrustados
Tu README debe explicar cómo ejecutar tests. ¿Qué instrucción mínima incluyes?
Comando npm test y requisitos previos
Historia del estándar HTTP completa
Biografía del autor del repositorio
Listado de todos los commits del año
Para escoger GraphQL, ¿qué contexto lo justifica mejor en una app cliente pesada?
Necesidad de obtener múltiples recursos en una consulta
Deseo de reemplazar HTTP por WebRTC
Obligación de evitar cualquier esquema tipado
Imposibilidad de usar autenticación
En Node.js, integras validación de entrada. ¿Qué librería o enfoque respalda calidad sin sobreacoplar?
Schemas con Joi o Zod en capa de borde
Validar dentro de consultas SQL directamente
Confiar en que el cliente envía datos limpios
Reescribir validación en cada controlador
Al diseñar una API REST, ¿qué método HTTP es más adecuado para eliminar un recurso específico?
GET /resource/{id}/remove
PATCH /resource/{id}
POST /resource/{id}/delete
DELETE /resource/{id}
Al diseñar una API RESTful, ¿cuál es la convención recomendada para nombrar los recursos?
Usar sustantivos en plural para representar colecciones
Usar verbos para describir acciones sobre los recursos
Usar nombres de clases en mayúsculas
Usar abreviaturas para reducir la longitud de las URLs
