કોડજેન (Codegen) વગર ટાઇપ-સેફ (Type-Safe) API ક્લાયન્ટ્સ
API રિસ્પોન્સ માટે as User નો ઉપયોગ કરવાનું બંધ કરો.
as User કાસ્ટ એ તમે તમારા કમ્પાઈલરને કહેલું એક જૂઠ છે.
TypeScript ને લાગે છે કે ડેટા સાચો છે.
રનટાઇમ (runtime) પર, ડેટા ઘણીવાર ખોટો હોય છે.
બગ્સ (bugs) ત્રણ ફંક્શન પછી સામે આવે છે.
સ્ટેક ટ્રેસ (stack trace) મદદ કરતું નથી.
નેટવર્ક એ એવી જગ્યા છે જ્યાં તમે કશું જ વિશ્વાસ કરી શકતા નથી. બોર્ડરરી (boundary) પર ડેટા વેરિફાય કરો.
Zod નો ઉપયોગ કરો. એકવાર સ્કીમા (schema) વ્યાખ્યાયિત કરો. Zod તમને ટાઇપ અને ચેક બંને આપે છે. તમારા ટાઇપ્સમાં તફાવત (drift) આવશે નહીં.
એક સાદું fetch wrapper બનાવો.
તેમાં સ્કીમા પાસ કરો.
બોડી ચેક કરવા માટે safeParse નો ઉપયોગ કરો.
ચેક કર્યા પછી જ ડેટા ટાઇપ બને છે.
એરર્સ (errors) થ્રો ન કરો.
Result ઓબ્જેક્ટ રિટર્ન કરો.
ok: true અથવા ok: false સાથે યુનિયન (union) નો ઉપયોગ કરો.
આ તમને નિષ્ફળતાઓને હેન્ડલ કરવા માટે મજબૂર કરે છે.
આ જ લોજિક તમારા URLs પર લાગુ કરો. તમારા ક્વેરી પેરામીટર્સને સ્કીમા કરો. રિક્વેસ્ટ મોકલતા પહેલા જ ટાઇપો (typos) અટકાવો.
Zod નો ઉપયોગ ત્યારે કરો જ્યારે:
- તમારી પાસે થોડા એન્ડપોઇન્ટ્સ (endpoints) હોય.
- તમારી પાસે OpenAPI સ્પેક ન હોય.
- તમારે રનટાઇમ સેફ્ટી (runtime safety) જોઈતી હોય.
codegen નો ઉપયોગ ત્યારે કરો જ્યારે:
- તમારી પાસે સેંકડો એન્ડપોઇન્ટ્સ હોય.
- તમારી પાસે પરફેક્ટ સ્પેક હોય.
કાસ્ટ (cast) એ ચેક નથી.
fetch ની નજીક as User ને કોડ સ્મેલ (code smell) તરીકે ગણો.
બોર્ડરરી પર પાર્સ કરો. અંદર વિશ્વાસ કરો.
સ્ત્રોત: https://dev.to/pavelespitia/type-safe-api-clients-in-typescript-without-a-code-generator-1k32