cURL a Swift

Pega un comando curl y obtén código Swift que hace la misma petición con URLSession.

cURL a Swift analiza tu comando en el navegador. Los tokens y credenciales del comando no salen de tu dispositivo.

Probar el cliente de API

Acerca de cURL a Swift

La documentación de las API habla curl y las apps de iOS hablan URLSession, y traducir entre ambos a mano es trabajo repetitivo que invita a pequeños errores: una cabecera olvidada, un cuerpo dejado como cadena cuando debía ser JSON, una opción de autenticación ignorada en silencio. Este conversor analiza el comando curl como lo hace el propio curl, incluidas las opciones que cambian el método o pliegan credenciales en una cabecera, y genera Swift que solo usa Foundation. Un cuerpo JSON se convierte en un diccionario de Swift pasado por JSONSerialization en vez de una cadena opaca, así que sigue siendo legible y fácil de editar.

Características

Cómo usar cURL a Swift

  1. Pega el comando curl, con sus opciones y su cuerpo
  2. Lee el Swift generado a la derecha
  3. Revisa los avisos por si alguna opción no se ha podido traducir
  4. Copia el código o descárgalo como archivo .swift

Ejemplo

Entrada

curl https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'

Salida

var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

El método se deduce del cuerpo, exactamente como lo deduciría curl.

Errores comunes y solución de problemas

Preguntas frecuentes

¿El Swift generado funciona en iOS, macOS y Linux?
Sí. Usa URLSession de Foundation, disponible en las plataformas de Apple y en swift-corelibs-foundation en Linux, así que el mismo archivo compila también en un proyecto de servidor.
¿Puedo obtener código con async/await en vez de un bloque?
La forma generada usa una tarea de datos con bloque de finalización, que funciona en todas partes. Cambiarla por `let (data, response) = try await URLSession.shared.data(for: request)` es una sola línea.
¿Cómo se maneja un cuerpo JSON?
Se analiza y se representa como diccionario [String: Any] de Swift, y después se codifica con JSONSerialization. Así la carga útil sigue siendo legible y puedes editar valores sin tocar una cadena escapada.
¿Qué pasa con las cookies de una opción -b?
Se convierten en una cabecera Cookie de la petición. Ten en cuenta que URLSession tiene su propio almacenamiento de cookies, que puede añadir o sobrescribir salvo que configures la sesión de otro modo.
¿Se sube mi comando curl al convertirlo a Swift?
No. El comando se analiza y el código se genera en tu navegador, algo que importa porque los comandos curl de la documentación y de los registros contienen a menudo claves de API reales.

Herramientas relacionadas

Todas las herramientas de ArrayKit