cURL a Dart

Pega un comando curl y obtén código Dart que hace la misma petición con package:http.

cURL a Dart analiza tu comando en el navegador. Las credenciales del comando no salen de tu dispositivo.

Convertir a Swift

Acerca de cURL a Dart

La documentación del backend te da un comando curl; una app de Flutter necesita Dart. Este conversor tiende el puente, analizando las opciones de curl como lo hace el propio curl y generando código que usa package:http, el paquete del que ya depende casi todo proyecto Dart o Flutter. Las cabeceras se recogen en un mapa tipado, un cuerpo JSON se convierte en un mapa de Dart codificado con jsonEncode en vez de una cadena pegada, y la autenticación básica se reconstruye con base64Encode a partir de las credenciales decodificadas. Los verbos que no tienen atajo caen en un http.Request, así que un método inusual sigue produciendo código funcional.

Características

Cómo usar cURL a Dart

  1. Pega el comando curl de la documentación de tu API
  2. Lee el Dart generado a la derecha
  3. Revisa los avisos sobre opciones que no se han podido trasladar
  4. Copia el código o descárgalo como archivo .dart

Ejemplo

Entrada

curl -X PUT https://api.example.com/users/1 -H 'Authorization: Bearer TOKEN' -d '{"role":"admin"}'

Salida

final response = await http.put(url, headers: headers, body: body);

El verbo viene de -X, y el cuerpo JSON se construye como mapa de Dart antes de codificarlo.

Errores comunes y solución de problemas

Preguntas frecuentes

¿El código generado funciona en una app de Flutter?
Sí. package:http funciona igual en Flutter y en Dart puro, así que el código de la petición puede pegarse tal cual en una clase de servicio. Solo conviene sustituir la impresión final por lo que haga tu app con la respuesta.
¿Conviene usar package:http o Dio?
package:http es la opción oficial y más ligera, y cubre casi cualquier petición. Dio añade interceptores, cancelación y utilidades multipart, y su API es lo bastante parecida como para traducir esta salida sin problema.
¿Cómo se convierte un cuerpo JSON?
Se analiza y se escribe como literal de mapa de Dart, y después se codifica con jsonEncode. Así los objetos y arrays anidados siguen siendo legibles y puedes sustituir valores por variables directamente.
¿Y si el método no tiene un ayudante tipo http.get?
El código generado construye un http.Request con el verbo como cadena y lo envía con send(), lo que cubre PURGE, LINK o cualquier otro que use una API.
¿Se sube el comando curl para convertirlo?
No. El análisis y la generación de código ocurren en tu navegador, así que los tokens y las claves de API dentro del comando se quedan en tu dispositivo.

Herramientas relacionadas

Todas las herramientas de ArrayKit