Lewati ke konten
🛠️ToolsShed

Postman to cURL

Konversi ekspor JSON permintaan Postman ke perintah cURL.

Tentang alat ini

Postman adalah salah satu platform pengujian API paling populer, memungkinkan pengembang untuk dengan mudah mengorganisir, mendokumentasikan, dan menguji permintaan HTTP. Namun, terkadang Anda perlu mengonversi permintaan tersebut ke perintah cURL—baik untuk berbagi dengan anggota tim, menjalankan dalam skrip, atau menyematkan dalam dokumentasi. Alat ini secara instan mengubah ekspor JSON Postman menjadi perintah cURL yang dapat dijalankan, menghilangkan kebutuhan untuk menulis ulang secara manual.

Untuk menggunakan konverter ini, ekspor permintaan atau koleksi Postman Anda sebagai JSON, tempel JSON ke dalam kolom input, dan klik "Konversi". Alat ini secara otomatis mengurai header, badan permintaan, parameter kueri, dan pengaturan lainnya, menghasilkan perintah cURL yang siap digunakan. Ini sangat berguna bagi insinyur DevOps, pengembang backend, dan tim QA yang perlu dengan cepat memindahkan permintaan API dari Postman ke baris perintah atau pipeline CI/CD.

Pertanyaan yang Sering Diajukan

Implementasi Kode

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.