Réutiliser un exemple d’API dans votre application
Une documentation propose souvent une commande curl pour tester un service. Le convertisseur reprend son URL, ses en-têtes et son corps dans la syntaxe de votre langage. Vous pouvez ainsi préparer un script Python, un appel Fetch ou une intégration PHP sans ressaisir chaque valeur. La requête n’est pas exécutée pendant la conversion.
Préparer une commande qui se convertit correctement
Collez une commande curl contenant une seule URL HTTP ou HTTPS, puis choisissez la sortie. Vérifiez la méthode et le corps avant de copier ou télécharger le fichier. Les messages sous le code expliquent les différences de comportement.
Conservez les guillemets autour des valeurs contenant des espaces. Pour un export des outils de développement, utilisez la variante bash. Les variables du shell doivent être remplacées par leur valeur ; les fichiers, formulaires multipart et options avancées non prises en charge demandent une adaptation manuelle.
Quel code générer pour votre environnement ?
Python utilise Requests, à installer avec pip install requests. Le corps est transmis en octets UTF-8. PHP s’appuie sur l’extension cURL, qui doit être activée. JavaScript utilise Fetch, disponible dans le navigateur et dans les versions de Node.js compatibles.
Le texte JSON est conservé sans nouvelle sérialisation : les grands nombres et les clés répétées ne sont pas réécrits par cet outil. En revanche, le convertisseur ne vérifie pas la validité du JSON. Ajoutez les délais d’attente et la gestion des erreurs dont votre application a besoin.
curl fonctionne, mais le navigateur bloque la requête
Fetch reste soumis à CORS. Les en-têtes gérés par le navigateur sont omis et nommés dans les remarques. La sortie utilise credentials: omit : elle ne récupère pas automatiquement les cookies de votre session. Si vous devez définir ces en-têtes côté serveur, envisagez Python ou PHP.
Sans -L, les redirections Fetch sont manuelles et peuvent produire une réponse opaque dans le navigateur. Avec -L, la réécriture de la méthode et la transmission des identifiants dépendent de la bibliothèque. Contrôlez ces points dans l’environnement d’exécution.
Deux champs de formulaire portant le même nom
Les deux valeurs tag restent dans le corps. L’option --data-urlencode encode l’espace, puis le code Python transmet le texte obtenu. Cela évite de perdre un champ répété en le stockant dans un dictionnaire.
curl 'https://example.com/api/tags' --data-urlencode 'tag=cloud hosting' --data-urlencode 'tag=linux'import requests
url = "https://example.com/api/tags"
headers = {
"Content-Type": "application/x-www-form-urlencoded"
}
body = "tag=cloud%20hosting&tag=linux".encode("utf-8")
response = requests.request(
method="POST",
url=url,
headers=headers,
data=body,
allow_redirects=False,
verify=True,
)
print(response.status_code)
print(response.text)
Comprendre les options curl
| Option curl | Effet dans le code |
|---|---|
URL / --url | Une URL HTTP ou HTTPS complète |
-X / --request | Méthode HTTP explicite |
-H / --header | Nom et valeur ; les doublons et valeurs vides nécessitent une vérification |
-d / --data / --data-raw / --data-binary | Corps intégré à la commande, ordre des arguments conservé |
--data-urlencode / -G | Encodage des valeurs ; -G les place dans la chaîne de requête |
--json | Texte JSON conservé, en-têtes JSON par défaut ajoutés |
-u / --user | Authentification Basic avec username:password |
-L / -I / -k | Redirections, HEAD et vérification TLS ; -k impossible avec Fetch |
-b / -A / -e | Cookie, User-Agent et Referer soumis aux règles du navigateur |
--compressed / -s / -S / -v / -i | Décompression par la bibliothèque ; affichage du terminal non reproduit |
Questions sur la conversion
Le convertisseur contacte-t-il mon API ?
Non. L’analyse et la génération se font dans le navigateur. Ni l’URL ni les identifiants ne sont testés. Seule l’exécution ultérieure du code envoie la requête.
Puis-je utiliser « Copy as cURL » ?
Oui, pour une requête unique au format POSIX utilisant les options prises en charge. Préférez la variante bash. Une option non reconnue bloque la génération au lieu d’être ignorée.
Comment convertir curl en Python Requests ?
Sélectionnez Python, copiez le code et installez Requests dans votre environnement. Vérifiez les remarques : aucun délai d’attente n’est ajouté automatiquement et les paramètres proxy ou .netrc de l’environnement peuvent intervenir.
Pourquoi certains en-têtes disparaissent-ils ?
Fetch ne permet pas de définir librement les en-têtes réservés au navigateur ; ils sont signalés dans les remarques. Content-Length est recalculé par la bibliothèque HTTP.
Les mots de passe sont-ils masqués dans le fichier ?
Non. Les valeurs fournies sont reprises dans le code. Relisez le fichier avant de le partager et adaptez le stockage des secrets à votre application.
