TGViewer
Настоящий JavaScript Настоящий JavaScript @true_js · 5.89K subscribers
Post #3661 403
Как запилить типобезопасный клиент под Strapi

Есть одна засада с любым запросом к Strapi: что ты попросил — то и получишь. Дергаешь статью без populate — тебе кидают только скалярные поля. Втыкаешь populate: { category: true } — сразу подтягивается категория. А если туда же засунуть fields: ['name'], то категория придет уже урезанной.

Один и тот же эндпоинт способен выдать кучу разных форм, и статический TypeScript-интерфейс ни одну из них нормально не опишет: он либо лажает (обещает поля, которых в ответе нет), либо тупо any сидит.

В посте разбирают, как это дело пофиксить через кодогенерацию: берешь схему живого Strapi, генеришь по ней TypeScript-клиент, и система типов сама выводит форму ответа из аргумента populate еще на этапе компиляции. То есть как в Prisma: что передал в вызов — такой тип и возвращается. Код на TypeScript, клиент open-source под MIT, ссылка в конце.

Читать на Хабре

👉 JS
More from @true_js
  1. Oct 2, 2026😅 Айтишник отправил в одну компанию три одинаковых резюме и только одно дошло до финала О…
  2. Oct 2, 2026Post #3961
  3. Oct 2, 2026🤣 Правильно расставленные приоритеты в моей жизни би лайк: 💥 xCode Journal
  4. Oct 1, 2026🤯 Люди взбунтовались против «пыточной для ИИ» На GitHub заметили открытый проект AI Tortu…
  5. Oct 1, 2026День в Заонежье начинается ещё в дороге. Мы встретим вас в аэропорту или на вокзале. Дальш…
  6. Oct 1, 2026Post #3946
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 →