API 레퍼런스
HTTPC 는 28 개의 요청 옵션 함수, 5 개의 설정 프리셋, 8 개의 내장 미들웨어와 완전한 다운로드 지원을 제공합니다.
핵심 아키텍처
HTTPC 는 이중 계층 설계를 사용합니다. Layer 1 의 메서드 API 는 얇은 래퍼이며, 실제 요청을 처리하는 엔진은 Layer 2 의 Handler 파이프라인입니다.
text
HTTPC 이중 계층 아키텍처
├── Layer 1 메서드 API (얇은 래퍼)
│ 패키지 함수 httpc.Get/Post/... + Client 메서드 + 요청 옵션 → Result
│
└── Layer 2 Handler 파이프라인 (요청 처리 엔진)
MiddlewareFunc(Handler) 양파 체인
→ clientImpl.middlewareChain 조립
→ 실행 (각 요청 = Handler 체인 조립 및 실행)모듈 탐색
핵심
| 모듈 | 설명 |
|---|---|
| 패키지 함수와 클라이언트 메서드 | Get/Post/Put/Patch/Delete 등 패키지 함수, 클라이언트 메서드와 보조 함수 |
| 설정 | Config 구조체, 5 가지 프리셋 설정, 검증 함수와 Cookie 보안 |
| 인터페이스 | Client, Doer, DomainClienter, RetryPolicy 등 핵심 인터페이스 |
| Result | Result, RequestInfo, ResponseInfo, RequestMeta 타입과 모든 메서드 |
| 핸들러 파이프라인 | Handler 파이프라인, MiddlewareFunc 양파 체인, Chain 결합기와 뮤테이터 계약 |
요청과 응답
| 모듈 | 설명 |
|---|---|
| 요청 옵션 | 28 개 WithXxx 요청 옵션 함수 (요청 헤더, 본문, 인증, Cookie, 콜백 등) |
| 미들웨어 | Chain 조합, 8 개 내장 미들웨어 팩토리와 감사 이벤트 타입 |
| 오류 타입 | ClientError, 12 가지 ErrorType 열거와 12 개 오류 변수 |
고급 기능
| 모듈 | 설명 |
|---|---|
| 도메인 클라이언트 | DomainClient 생성, HTTP 메서드, 다운로드 메서드와 URL 조합 규칙 |
| 세션 관리 | SessionManager 의 Cookie/요청 헤더 관리와 보안 검증 |
| 파일 다운로드 | 다운로드 함수, DownloadConfig, 이어받기와 보안 보호 |
| 상수와 타입 | BodyKind 열거, FormData/FileData와 감사 컨텍스트 키 |
빠른 참조
클라이언트 생성
go
client, err := httpc.New() // 기본 설정
client, err := httpc.New(httpc.SecureConfig()) // 보안 프리셋
client, err := httpc.New(customConfig) // 커스텀 설정요청 전송
go
// 패키지 함수
result, err := httpc.Get(url, options...)
// 클라이언트 메서드
result, err := client.Get(url, options...)
// 컨텍스트 포함
result, err := client.Request(ctx, "GET", url, options...)응답 처리
go
result.StatusCode() // 상태 코드
result.Body() // 응답 본문 (문자열)
result.RawBody() // 응답 본문 (바이트)
result.Unmarshal(&data) // JSON 파싱
result.IsSuccess() // 2xx 여부
result.Meta.Duration // 요청 소요 시간
result.Meta.Attempts // 재시도 횟수