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

API பதில்களுக்கு (responses) as User என்பதைப் பயன்படுத்துவதை நிறுத்துங்கள்.

as User cast என்பது உங்கள் compiler-இடம் நீங்கள் சொல்லும் ஒரு பொய். TypeScript தரவு சரியாக இருப்பதாக நினைக்கிறது. Runtime-இல், தரவு பெரும்பாலும் தவறாக இருக்கும். மூன்று functions கழித்து பிழைகள் (bugs) வெளிப்படும். Stack trace எந்த உதவியையும் செய்யாது.

நெட்வொர்க்கில் எதையும் நீங்கள் நம்பக்கூடாது. எல்லையிலேயே (boundary) தரவைச் சரிபார்க்கவும்.

Zod-ஐப் பயன்படுத்தவும். ஒருமுறை schema-வை வரையறுக்கவும். Zod உங்களுக்கு type மற்றும் சரிபார்ப்பு ஆகிய இரண்டையும் வழங்குகிறது. உங்கள் types மாறுபடாது.

ஒரு எளிய fetch wrapper-ஐ உருவாக்கவும். அதற்குள் ஒரு schema-வை அனுப்பவும். Body-ஐச் சரிபார்க்க safeParse-ஐப் பயன்படுத்தவும். சரிபார்ப்பிற்குப் பின்னரே தரவு ஒரு type ஆக மாறும்.

பிழைகளை (errors) throw செய்யாதீர்கள். ஒரு Result object-ஐத் திருப்பி அனுப்பவும். ok: true அல்லது ok: false கொண்ட ஒரு union-ஐப் பயன்படுத்தவும். இது தோல்விகளைக் கையாள உங்களைக் கட்டாயப்படுத்துகிறது.

இதே தர்க்கத்தை (logic) உங்கள் URLs-களுக்கும் பயன்படுத்தவும். உங்கள் query parameters-களுக்கு schema வரையறுக்கவும். Request புறப்படுவதற்கு முன்பே எழுத்துப் பிழைகளைத் (typos) தவிர்க்கவும்.

எப்போது Zod-ஐப் பயன்படுத்த வேண்டும்:

  • உங்களிடம் குறைவான endpoints இருந்தால்.
  • உங்களிடம் OpenAPI spec இல்லையென்றால்.
  • உங்களுக்கு runtime safety தேவைப்பட்டால்.

எப்போது codegen-ஐப் பயன்படுத்த வேண்டும்:

  • உங்களிடம் நூற்றுக்கணக்கான endpoints இருந்தால்.
  • உங்களிடம் ஒரு சரியான spec இருந்தால்.

ஒரு cast என்பது சரிபார்ப்பு அல்ல. fetch-க்கு அருகில் as User இருப்பதை ஒரு code smell ஆகக் கருதவும்.

எல்லையிலேயே (boundary) parse செய்யவும். உள்ளே நம்பலாம்.

Source: https://dev.to/pavelespitia/type-safe-api-clients-in-typescript-without-a-code-generator-1k32