ATAC - 터미널 API 클라이언트 치트시트
ATAC (Arguably a Terminal API Client)는 터미널에서 완전히 실행되는 Postman/Insomnia 스타일 API 클라이언트입니다. 철학은 무료, 계정 없음, 오프라인입니다. 요청 컬렉션은 Git에 커밋할 수 있는 일반 JSON/YAML 파일로 저장되고, 클라우드 또는 로그인이 없으며, 단일 Rust 바이너리로 실행됩니다. 일반적인 HTTP 메서드, 인증 스킴, 환경/변수, 요청 전/후 스크립트를 지원하며, 기존 Postman 및 Insomnia 컬렉션을 import할 수 있습니다.
설치
| 플랫폼 | 명령어 |
|---|
| Cargo (모든 플랫폼) | cargo install atac |
| macOS (Homebrew) | brew install atac |
| Arch Linux (AUR) | yay -S atac |
| 바이너리 | GitHub Releases 페이지에서 다운로드 |
| 검증 | atac --version |
실행
| 명령어 | 설명 |
|---|
atac | 기본 컬렉션 디렉토리로 열기 |
atac -d ~/api-collections | 컬렉션에 특정 디렉토리 사용 |
atac --help | 전체 옵션 목록 |
| Postman import | ATAC를 Postman export로 지정; 변환 |
레이아웃 및 네비게이션
| 키 | 액션 |
|---|
Tab / Shift+Tab | 창 간 이동 |
↑ / ↓ 또는 j / k | 목록 내 이동 |
Enter | 열기/선택 |
q | 종료 |
? / h | 도움말 |
Ctrl+c | 취소 / 종료 |
컬렉션 및 요청
| 액션 | 방법 |
|---|
| 새 컬렉션 | 컬렉션 창에서 생성 |
| 새 요청 | 컬렉션 아래에 요청 추가 |
| 이름 바꾸기/삭제 | 트리에서 항목 관리 |
| 저장소 | 모든 것이 파일로 저장 (JSON/YAML) → Git 친화적 |
요청 구축
| 필드 | 노트 |
|---|
| 메서드 | GET, POST, PUT, PATCH, DELETE, … |
| URL | {{variable}} 보간 지원 |
| Query params | 편집 가능 키/값 테이블 |
| Headers | 키/값 테이블 |
| Body | 원본, JSON, form, multipart |
| Auth | Basic, Bearer token, 기타 |
전송 및 응답
| 키 | 액션 |
|---|
| 요청 전송 | 현재 요청 실행 (비동기) |
| 응답 보기 | 상태, 시간, 크기, 헤더, 본문 |
| 예쁜 보기 | JSON/응답 서식 |
| 복사 | 응답 본문 복사 |
환경 및 변수
| 개념 | 사용 |
|---|
| 환경 파일 | {{base_url}}, 토큰 등 정의 |
| 변수 보간 | URL, 헤더, 본문의 {{var}} |
| 환경 전환 | 요청 편집 없이 Dev/staging/prod |
스크립팅
| 훅 | 목적 |
|---|
| 요청 전 스크립트 | 전송 전 변수/auth 설정 |
| 요청 후 스크립트 | 응답에서 값 추출 (예: 토큰) |
일반적인 워크플로우
# repo에서 API 컬렉션 유지 및 터미널에서 열기
atac -d ./api-tests # 요청 편집, 커밋할 수 있는 파일로 저장
# 기존 Postman 컬렉션 import, 계정 없이 실행
atac # Postman export import, 요청 전송
# 요청 체인: 요청 후 스크립트에서 토큰 캡처, {{token}}으로 재사용
ATAC vs 다른 API 클라이언트
| 측면 | ATAC | Postman | Yaak | Bruno |
|---|
| 인터페이스 | 터미널 TUI | 데스크톱 GUI | 데스크톱 GUI | 데스크톱 GUI |
| 계정 | 없음 | 선택/클라우드 | 없음 | 없음 |
| 저장소 | 일반 파일 (Git) | 클라우드/로컬 | 파일 (Git) | 파일 (Git) |
| 최고의 용도 | 터미널 우선, SSH, CI | 팀, 클라우드 동기화 | GUI + Git | GUI + Git |
리소스