𝗧𝘆𝗽𝗲-𝗦𝗮𝗳𝗲 𝗔𝗣𝗜 𝗖𝗹𝗶𝗲𝗻𝘁𝘀 𝗪𝗶𝘁𝗵𝗼𝘂𝘁 𝗖𝗼𝗱𝗲𝗴𝗲𝗻

API రెస్పాన్స్‌ల కోసం as User ఉపయోగించడం ఆపండి.

as User కాస్టింగ్ అనేది మీరు మీ కంపైలర్‌కు చెప్పే ఒక అబద్ధం. TypeScript డేటా సరైనదని అనుకుంటుంది. రన్‌టైమ్ (runtime) సమయంలో, డేటా తరచుగా తప్పుగా ఉంటుంది. బగ్స్ మూడు ఫంక్షన్ల తర్వాత బయటపడతాయి. స్టాక్ ట్రేస్ (stack trace) కూడా సహాయపడదు.

నెట్‌వర్క్ అనేది మీరు దేనినీ నమ్మకూడని చోటు. బౌండరీ (boundary) వద్దే డేటాను వెరిఫై చేయండి.

Zod ఉపయోగించండి. ఒకసారి స్కీమాను (schema) నిర్వచించండి. Zod మీకు టైప్ మరియు చెక్ (check) రెండింటినీ అందిస్తుంది. మీ టైప్స్ డ్రిఫ్ట్ (drift) అవ్వవు.

ఒక సింపుల్ fetch wrapperను నిర్మించండి. దానిలోకి ఒక స్కీమాను పంపండి. బాడీని చెక్ చేయడానికి safeParse ఉపయోగించండి. చెక్ చేసిన తర్వాతే డేటా ఒక టైప్‌గా మారుతుంది.

ఎర్రర్లను త్రో (throw) చేయకండి. ఒక Result objectను రిటర్న్ చేయండి. ok: true లేదా ok: false తో కూడిన యూనియన్ (union) ఉపయోగించండి. ఇది ఫెయిల్యూర్స్‌ను హ్యాండిల్ చేసేలా మిమ్మల్ని ప్రేరేపిస్తుంది.

ఇదే లాజిక్‌ను మీ URLలకు కూడా వర్తింపజేయండి. మీ క్వెరీ పారామీటర్లకు (query parameters) స్కీమాను వర్తింపజేయండి. రిక్వెస్ట్ వెళ్ళకముందే టైపోలను (typos) నివారించండి.

ఈ సందర్భాలలో Zod ఉపయోగించండి:

  • మీకు తక్కువ ఎండ్‌పాయింట్లు (endpoints) ఉన్నప్పుడు.
  • మీకు OpenAPI spec లేనప్పుడు.
  • మీకు రన్‌టైమ్ సేఫ్టీ (runtime safety) కావాలనుకున్నప్పుడు.

ఈ సందర్భాలలో codegen ఉపయోగించండి:

  • మీకు వందలాది ఎండ్‌పాయింట్లు ఉన్నప్పుడు.
  • మీకు ఖచ్చితమైన (perfect) spec ఉన్నప్పుడు.

కాస్టింగ్ అనేది చెక్ కాదు. fetch దగ్గర as Userని ఒక కోడ్ స్మెల్ (code smell)గా పరిగణించండి.

బౌండరీ వద్దే పార్స్ (Parse) చేయండి. లోపల డేటాను నమ్మవచ్చు.

Source: https://dev.to/pavelespitia/type-safe-api-clients-in-typescript-without