TGViewer
Free React For Beginners Free React For Beginners @reactbeginners · 3.04K subscribers
Post #609 2.59K
Як відповідально обробити відповідь від серверу - покрокова інструкція

fetch(API.user);

1. Перевірте statusCode, звичайний fetch не кидає помилок на не 2ХХ статус коди

fetch(API.user).then((response) => {
if (!response.ok) {
throw new Error(`Fetch failed`, { cause: response });
}
return response.json();
});


2. Провалідуйте тіло відповіді, особливо якщо працюєте з "чужим" бекендом

.then((maybeUser) => {
// 2
if (typeof maybeUser?.id !== "string") {
throw new Error(`UserDTO is invalid`, { cause: maybeUser });
}
});


3. Перетворіть отриманий об'єкт на модель, якою буде користуватися frontend

.then((maybeUser) => {
// ...2
return { userId: maybeUser.id };
});


Паралельно, не забуваємо обробити стани коли:

1. Запит триває => показуємо індикацію завантаження
2. Запит завершився помилкою => показуємо повідомлення
3. Запит повернув "нічого" => показуємо повідомлення

І не забуваємо про AbortController (C)

Валідацію та перетворення (маппінг) моделей не обов'язково робити руками:
Yup (5.8KK завантажень, 22к ⭐️), Joi (10KK завантажень, 21к⭐️), Zod (7.6M завантажень, ⭐️29.1К )

❓Чи завжди все це потрібно? Залежить від рівня серйозності проекту. Якщо він має жити більше року і приносити гроші - варто зважити.
@reactbeginners
  • 👍 36
More from @reactbeginners
  1. Sep 29, 2026Як і обіцяв - про БЗВП по свіжих слідах (і заодно про процес). У знайомого злетіло бронюва…
  2. Sep 26, 2026Думаю багатьом буде цікаво щось дізнатися про розробоку в ЗСУ Спробою розповісти трохи тог…
  3. Sep 24, 2026Всім привіт. Давно не бачилися, але до телеграму руки все ніяк не доходили. В лінкедині я…
  4. May 24, 2026Київ, співчуваю. Сам сьогодні в цю ніч був на лукьянівці. Як на мене, найважча ніч за всі.…
  5. Dec 31, 2025З новим Роком. Нехай це буде останній рік війни. А росія нехай отримує те на що заслужила.…
  6. Nov 29, 2025Сподіваюся всі живі. Схоже що це був рекордний наліт. Як бачите - путін не зацікавлений в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →