Aller au contenu
🛠️ToolsShed

Postman to cURL

Convertir les exports JSON de requête Postman en commandes cURL.

À propos de cet outil

Postman est l'une des plateformes les plus populaires pour tester les API, permettant aux développeurs d'organiser, documenter et tester facilement les requêtes HTTP. Cependant, il est parfois nécessaire de convertir ces requêtes en commandes cURL—que ce soit pour les partager avec les membres de l'équipe, les exécuter dans des scripts ou les intégrer dans la documentation. Cet outil convertit instantanément les exportations JSON de Postman en commandes cURL exécutables, éliminant le besoin de réécriture manuelle.

Pour utiliser ce convertisseur, exportez votre requête ou votre collection Postman au format JSON, collez le JSON dans le champ de saisie et cliquez sur "Convertir". L'outil analyse automatiquement les en-têtes, le corps de la requête, les paramètres de requête et autres paramètres, générant des commandes cURL prêtes à l'emploi. Ceci est particulièrement utile pour les ingénieurs DevOps, les développeurs backend et les équipes d'assurance qualité qui ont besoin de déplacer rapidement les requêtes API de Postman vers la ligne de commande ou les pipelines CI/CD.

Questions Fréquentes

Implémentation du Code

import json

def postman_to_curl(postman_json: str, pretty: bool = False) -> str:
    data = json.loads(postman_json)
    # Handle collection format
    if 'item' in data:
        results = []
        for item in data['item']:
            req = item.get('request', {})
            results.append(build_curl(req, pretty))
        return '\n\n'.join(results)
    # Handle single request
    req = data.get('request', data)
    return build_curl(req, pretty)

def build_curl(req: dict, pretty: bool) -> str:
    method = req.get('method', 'GET').upper()
    url_obj = req.get('url', {})
    url = url_obj if isinstance(url_obj, str) else url_obj.get('raw', '')
    parts = [f'curl -X {method}']
    for header in req.get('header', []):
        val = f"{header['key']}: {header['value']}"
        parts.append(f'-H "{val}"')
    body = req.get('body', {})
    if body.get('mode') == 'raw' and body.get('raw'):
        escaped = body['raw'].replace('"', '\\"')
        parts.append(f'-d "{escaped}"')
    parts.append(f'"{url}"')
    sep = ' \\\n  ' if pretty else ' '
    return sep.join(parts)

# Example
collection = json.dumps({
    "method": "POST",
    "url": {"raw": "https://api.example.com/data"},
    "header": [{"key": "Content-Type", "value": "application/json"}],
    "body": {"mode": "raw", "raw": '{"key":"value"}'}
})
print(postman_to_curl(collection, pretty=True))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.