cURL 변환기
API 문서에 적힌 curl 예제나 브라우저 개발자 도구에서 "Copy as cURL"로 복사한 명령을, 실제 코드에 붙여 쓰려면 손으로 다시 옮겨 적어야 합니다. cURL 변환기는 그 curl 명령을 붙여넣으면 JavaScript(fetch·axios), Python(requests), Node.js, Go의 HTTP 요청 코드로 바로 바꿔 주는 도구입니다. 메서드, 헤더, 요청 바디, Basic 인증까지 읽어 내서 언어별 관용적인 형태로 만들어 줍니다.
새 API를 붙일 때마다 curl로 먼저 두들겨 보고, 되는 걸 확인한 다음 코드로 옮기는 흐름을 반복하다 보니 그 옮겨 적는 과정이 매번 지루했습니다. 헤더 순서를 빠뜨리거나 JSON 바디의 따옴표를 잘못 이스케이프해서 삽질한 적도 많았고요. 그래서 curl을 붙여넣으면 여러 언어를 탭으로 한 번에 보고 필요한 걸 복사하도록, 제가 쓰려고 만들었습니다.
사용 방법
지원하는 형식
입력에는 한 줄짜리 curl이든, 줄 끝을 \로 이어 붙인 여러 줄 curl이든 그대로 넣을 수 있습니다. -X/--request(메서드), -H/--header(헤더), -d/--data류(바디), -u(Basic 인증), -b/--cookie, --compressed 같은 옵션을 읽어 냅니다. 출력은 JavaScript(fetch), JavaScript(axios), Python(requests), Node.js(fetch), Go(net/http) 다섯 가지를 탭으로 제공하며, 요청 바디가 JSON이면 각 언어에 맞는 객체 리터럴로 풀어 줍니다.
-
왼쪽 입력창에 curl 명령을 붙여넣습니다. 뭘 넣어야 할지 막막하면 샘플 버튼을 눌러 예시로 시작해도 됩니다.

-
붙여넣는 즉시 오른쪽에 변환된 코드가 나옵니다. 기본은 JavaScript(fetch)이고, 복사 버튼으로 바로 가져갈 수 있습니다.

-
상단 탭에서 Python(requests)이나 Go(net/http) 등 원하는 언어로 바꾸면 같은 요청이 그 언어의 코드로 다시 그려집니다.

메서드와 바디는 이렇게 추론합니다
-X로 메서드를 지정하지 않았더라도, -d로 데이터를 넘겼다면 POST로, 아무 데이터도 없으면 GET으로 잡습니다. 요청 바디는 Content-Type이 JSON이거나 내용이 {·[로 시작하면 JSON으로 인식해서, fetch에서는 JSON.stringify(...), Python에서는 json= 파라미터처럼 각 언어가 기대하는 방식으로 넣어 줍니다. JSON이 아니면 문자열 그대로 바디에 담습니다.
Basic 인증과 여러 줄 명령
-u user:pass로 넘긴 Basic 인증은 각 언어에서 Authorization: Basic ... 헤더(또는 Python의 auth= 튜플)로 변환됩니다. 브라우저에서 복사한 curl은 보통 헤더마다 줄을 나눠 \로 이어 붙는데, 이런 여러 줄 명령도 한 덩어리로 읽어 내므로 복사한 그대로 붙여넣으면 됩니다.