Sobes.tech
Middle

Hay dos endpoints: obtener la lista de usuarios y obtener un usuario por ID. ¿Cómo organizarías la tipificación de las respuestas y el trabajo con estas API?

sobes.tech AI

Respuesta de la IA

Para tipificar las respuestas de dos endpoints — la lista de usuarios y el usuario por ID — es conveniente definir tipos de datos separados que reflejen la estructura de la respuesta.

Por ejemplo, usando TypeScript:

// Tipo para un usuario
interface User {
  id: string;
  name: string;
  email: string;
  // otros campos
}

// Respuesta con un solo usuario
interface UserResponse {
  user: User;
}

// Respuesta con lista de usuarios
interface UsersListResponse {
  users: User[];
  totalCount: number; // si es necesario
}

Para trabajar con la API, puedes crear funciones que devuelvan promesas con datos tipados:

async function fetchUserById(id: string): Promise<UserResponse> {
  const response = await fetch(`/api/users/${id}`);
  return response.json();
}

async function fetchUsersList(): Promise<UsersListResponse> {
  const response = await fetch('/api/users');
  return response.json();
}

Este enfoque permite controlar estrictamente la estructura de los datos, obtener autocompletado y verificación de tipos en el IDE, lo que reduce errores y facilita el mantenimiento del código.