HTTPie가 잘 맞는 작업
curl은 자동화 환경에 널리 설치되어 있고, HTTPie는 사람이 API를 탐색할 때 짧은 문법과 읽기 좋은 JSON 출력을 제공해. macOS에서는 brew install httpie로 설치할 수 있어.
합리적 기본값
http https://api.github.com/users/cli
# = curl -sS -H 'Accept: application/json' https://...HTTPie는 JSON에 맞는 Accept 헤더를 사용하고 구조와 색을 적용해 응답을 읽기 쉽게 보여 줘. 리다이렉트 정책은 옵션으로 명시해서 요청 의도를 드러내.
30초 안에 POST
http POST https://api.example/items name=sample qty:=3 active:=true이 명령은 이름은 문자열로, 수량은 숫자로, 활성 상태는 불리언으로 담은 JSON을 POST해. :=는 숫자와 불리언 같은 JSON 값을 전달하고, =는 문자열을 전달해.
헤더·인증·파일 보내기
http GET https://... 'Authorization: Bearer xyz'http -a user:pass GET https://...http POST https://... < body.json: stdin의 파일을 본문으로.http --download https://.../file.zip: 진행률 표시 + 파일명 자동.
세션
http --session=mysession POST https://api/login user=alice pass=...은 쿠키, 헤더와 기본 인증 정보를 세션에 저장해. 이후 요청에서도 같은 --session을 지정하면 상태를 재사용할 수 있어서 여러 단계의 API 흐름을 살피기 좋아.
curl이 여전히 이기는 곳
Python이 없는 작은 컨테이너, 성능이 중요한 반복 작업이나 이미 curl을 전제로 한 스크립트에서는 그대로 curl을 써. 대화형 탐색에서는 HTTPie의 기본 출력이 더 편할 수 있어.
친절한 출력 뒤의 원본도 볼 수 있어야 해
HTTPie의 색과 정렬은 사람이 읽기 좋지만 원시 바이트, 헤더 중복, 리다이렉트 연쇄을 분석할 때는 표현 층이 정보를 가릴 수 있어. 문제를 재현할 때는 상세 출력과 원시 출력, 실제 상태를 함께 저장해.
셸 편의 문법을 스크립트 프로토콜로 착각하지 마
name=value 같은 입력 표기는 클라이언트가 JSON 유형을 추론하는 규칙을 가져. 값이 문자열인지 숫자인지, 파일 업로드인지 버전별 문서를 확인하고 중요한 요청은 명시한 본문 파일과 Content-Type으로 재현해.