Client API Type-Safe senza Codegen
Smetti di usare as User per le risposte API.
Il cast as User è una bugia che racconti al tuo compilatore. TypeScript pensa che i dati siano corretti. A runtime, i dati sono spesso errati. I bug emergono tre funzioni dopo. Lo stack trace non aiuta.
La rete è il luogo in cui non devi fidarti di nulla. Verifica i dati al confine.
Usa Zod. Definisci uno schema una volta sola. Zod ti fornisce sia il tipo che il controllo. I tuoi tipi non divergeranno.
Costruisci un semplice wrapper per fetch. Passagli uno schema. Usa safeParse per controllare il body. I dati diventano un tipo solo dopo il controllo.
Non lanciare errori. Restituisci un oggetto Result. Usa una union con ok: true o ok: false. Questo ti obbliga a gestire i fallimenti.
Applica la stessa logica ai tuoi URL. Crea uno schema per i tuoi parametri di query. Evita i refusi prima che la richiesta venga inviata.
Usa Zod quando:
- Hai pochi endpoint.
- Non hai una specifica OpenAPI.
- Vuoi la sicurezza a runtime.
Usa la codegen quando:
- Hai centinaia di endpoint.
- Hai una specifica perfetta.
Un cast non è un controllo. Considera as User un code smell vicino a fetch.
Esegui il parsing al confine. Fidati all'interno.
Fonte: https://dev.to/pavelespitia/type-safe-api-clients-in-typescript-without-a-code-generator-1k32