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