TK TaskKit
Strumenti per dev

cURL ↔ fetch

Converti comandi cURL in chiamate JavaScript fetch() e viceversa, nel tuo browser.

Input
Output
Incolla un comando a sinistra, vedi la forma convertita a destra.

Gli input restano su questo dispositivo. Ogni strumento per dev di TaskKit gira interamente nel tuo browser. Token, payload e testo incollato non vengono trasmessi ai server di TaskKit né a terze parti.

Cosa fa questo strumento

Converte comandi cURL in chiamate JavaScript fetch() e viceversa. Metodo, header, body di richiesta, basic auth e cookie passano tutti in entrambe le direzioni. Utile quando hai copiato un curl dal tuo terminale o un « Copy as cURL » dei devtools di Chrome e lo vuoi come codice, o quando vuoi condividere uno snippet fetch con qualcuno il cui browser non vedrai mai.

Quando usarlo

  • Tradurre un curl dalla doc di un fornitore nel tuo client TypeScript.
  • Riprodurre una richiesta che fallisce da un report di bug (« ecco il curl ») in uno script Node.
  • Condividere una richiesta con un collega come uno snippet fetch che può incollare direttamente in una console browser.
  • Riscrivere un fetch funzionante come curl per aprire un bug con il backend.

Come funziona

La direzione curl parsa l'input come un comando shell — le stringhe tra virgolette sono rispettate, le continuazioni di riga (\) sono unite, e i flag comuni (-X, -H, -d, -u, -A, -e, -b) sono riconosciuti. -u user:pass viene riscritto come header Authorization: Basic in modo che funzioni in qualsiasi client HTTP.

La direzione fetch legge una chiamata fetch() ed estrae l'URL, il metodo, gli header e il body. È un estrattore basato su regex, non un parser JS, quindi i literal di stringa funzionano ma i template literal e i valori calcolati no.

Note

Il mio fetch con un template literal JSON non si è tradotto. Giusto — il parser legge solo stringhe literal. Sostituisci \{ "id": \${id} }`` con la stringa risolta, o fai prima quella conversione.

--data-binary viene trattato diversamente da -d? No. cURL li distingue (uno preserva i newline, l'altro no), ma per la traduzione fetch trattiamo entrambi come body della richiesta. Se dipendi dalla semantica binaria, sei oltre quello che fetch può esprimere comunque.

E HTTP/2 push, upload multipart, streaming? Fuori dal perimetro. Multipart è la richiesta più comune — per quella, costruisci FormData in codice piuttosto che passare per questo strumento.

Strumenti correlati