3.4 KiB
3.4 KiB
curl-to-code-converter
A CLI tool that converts cURL commands into ready-to-use code snippets in multiple programming languages. Simply paste a cURL command and get clean, formatted code with proper headers, authentication, and body handling.
Features
- Convert cURL to Python (requests)
- Convert cURL to JavaScript (fetch)
- Convert cURL to Go (net/http)
- Convert cURL to Ruby (Net::HTTP)
- Convert cURL to PHP (cURL)
- Convert cURL to Java (HttpURLConnection)
- Support for headers, authentication, JSON body
- Interactive CLI with verbose output
- Output to file or stdout
Installation
# Install from source
pip install -e .
# Or install directly
pip install curl-to-code-converter
Usage
Basic Conversion
# Convert to Python (default)
curl-to-code 'curl https://api.example.com/data'
# Convert to JavaScript
curl-to-code 'curl https://api.example.com/data' -l javascript
# Convert to Go
curl-to-code 'curl https://api.example.com/data' -l go
# Convert to Ruby
curl-to-code 'curl https://api.example.com/data' -l ruby
# Convert to PHP
curl-to-code 'curl https://api.example.com/data' -l php
# Convert to Java
curl-to-code 'curl https://api.example.com/data' -l java
With Headers and Data
# POST with JSON body
curl-to-code 'curl -X POST https://api.example.com -H "Content-Type: application/json" -d "{\"key\":\"value\"}"' -l python
# With authentication
curl-to-code 'curl -u user:pass https://api.example.com' -l python
# With custom headers
curl-to-code 'curl -H "Authorization: Bearer token" https://api.example.com' -l javascript
Output Options
# Write to file
curl-to-code 'curl https://api.example.com' -o output.py
# Verbose output (shows parsed details)
curl-to-code 'curl https://api.example.com' --verbose
Supported Options
| Option | Description |
|---|---|
-l, --language |
Target language (python, javascript, go, ruby, php, java) |
-o, --output |
Output file path |
-v, --verbose |
Show verbose output |
Supported cURL Options
-X, --request- HTTP method-H, --header- Custom headers-d, --data- Request body-u, --user- Basic authentication-A, --user-agent- User agent header--compressed- Accept-Encoding header-k, --insecure- Skip SSL verification-b, --cookie- Cookie header
Examples
Python Output
import requests
response = requests.post(
'https://api.example.com/data',
headers={'Content-Type': 'application/json'},
json={'key': 'value'}
)
print(response.status_code)
print(response.text)
JavaScript Output
const fetchData = async () => {
try {
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({'key': 'value'})
};
const response = await fetch('https://api.example.com/data', options);
const data = await response.json();
console.log(data);
return data;
} catch (error) {
console.error('Error:', error);
}
};
fetchData();
Development
# Clone the repository
git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/curl-to-code-converter.git
cd curl-to-code-converter
# Install in development mode
pip install -e .
# Run tests
pytest tests/ -v
# Lint
ruff check .
# Type check
mypy curl_to_code_converter --ignore-missing-imports
Requirements
- Python 3.7+
- requests
License
MIT