Sobes.tech
Middle

Postoje dva endpointa: dobijanje liste korisnika i dobijanje korisnika po ID. Kako organizujete tipizaciju odgovora i rad sa ovim API-jevima?

sobes.tech АИ

Одговор од АИ

Za tipizaciju odgovora sa dva krajnja tačka — spiska korisnika i korisnika po ID — korisno je definisati odvojene tipove podataka koji odražavaju strukturu odgovora.

Na primer, koristeći TypeScript:

// Tip za jednog korisnika
interface User {
  id: string;
  name: string;
  email: string;
  // druga polja
}

// Odgovor sa jednim korisnikom
interface UserResponse {
  user: User;
}

// Odgovor sa spiskom korisnika
interface UsersListResponse {
  users: User[];
  totalCount: number; // ako je potrebno
}

Za rad sa API-jem, možete kreirati funkcije koje vraćaju promise sa tipiziranim podacima:

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();
}

Ovaj pristup omogućava strogu kontrolu strukture podataka, dobijanje autocompletion-a i provere tipova u IDE-u, što smanjuje broj grešaka i olakšava održavanje koda.