본문으로 건너뛰기
🛠️ToolsShed

Postman to cURL

Postman 요청 JSON 내보내기를 cURL 명령으로 변환합니다.

이 도구 소개

Postman은 개발자가 HTTP 요청을 쉽게 구성, 문서화, 테스트할 수 있는 가장 인기 있는 API 테스트 플랫폼 중 하나입니다. 하지만 팀원과 공유하거나, 스크립트에서 실행하거나, 문서에 포함시키기 위해 해당 요청을 cURL 명령으로 변환해야 하는 경우가 있습니다. 이 도구는 Postman JSON 내보내기를 즉시 실행 가능한 cURL 명령으로 변환하므로 수동으로 다시 작성할 필요가 없습니다.

이 변환기를 사용하려면 Postman 요청 또는 컬렉션을 JSON으로 내보내고, JSON을 입력 필드에 붙여넣은 후 "변환"을 클릭하면 됩니다. 도구는 헤더, 요청 본문, 쿼리 매개변수 및 기타 설정을 자동으로 구문 분석하여 즉시 사용 가능한 cURL 명령을 출력합니다. 이는 Postman에서 명령줄이나 CI/CD 파이프라인으로 API 요청을 빠르게 이동해야 하는 DevOps 엔지니어, 백엔드 개발자, QA 팀에게 특히 유용합니다.

자주 묻는 질문

코드 구현

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.