Go Resty
Go Resty는 RESTful API 클라이언트를 구축하기 위한 Go 언어 라이브러리입니다. 개발자들이 쉽게 HTTP 요청을 보내고 응답을 처리할 수 있도록 간결하고 강력한 API를 제공합니다.
기능
- GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS 및 기타 요청 방법 지원
- 간편하고 연결 가능한 설정 및 요청 방법
- 요청 본문은
string
,[]byte
,struct
,map
,slice
,io.Reader
유형일 수 있음-
Content-Type
을 자동으로 감지 -
io.Reader
에 대해 버퍼 처리를 사용하지 않음 - 미들웨어 및 요청 실행에서 원본
*http.Request
인스턴스에Request.RawRequest
로 액세스 가능 -
Request.RawRequest.GetBody()
를 통해 요청 본문을 여러 번 읽을 수 있음
-
- Response 객체로 더 많은 가능성 제공
-
[]byte
배열로 응답 액세스 -response.Body()
, 또는string
으로 -response.String()
- 응답 시간
response.Time()
및 수신 시간response.ReceivedAt()
을 검색
-
-
JSON
및XML
과 같은 콘텐츠 유형의 자동 인코딩 및 디코딩-
Content-Type
헤더 및struct/map
매개변수가 제공되지 않으면 기본적으로JSON
으로 설정 - JSON 인코딩/디코딩 및 XML 인코딩/디코딩을 재정의할 수 있는 옵션 제공
-
-
multipart/form-data
를 통한 하나 이상의 파일 간편한 업로드 지원- 파일의 콘텐츠 유형을 자동으로 감지
- 백오프 재시도 메커니즘 및 재시도 조건 함수 참조 지원
- HTTP 및 REST 요청에 대한 Resty 클라이언트의 미들웨어 지원, Request 및 Response를 포함
-
Request.SetContext
지원 -
BasicAuth
및Bearer
토큰을 위한 인증 옵션 - 모든 요청 또는 특정 요청의
ContentLength
값을 설정 - 사용자 정의 루트 인증서 및 클라이언트 인증서
-
curl -o
명령어와 유사하게 HTTP 응답을 직접 다운로드/파일로 저장 - 쿠키를 위한 Request 및 CookieJar 지원
- 호스트 URL 대신 SRV 레코드를 기반으로 하는 요청
-
Timeout
,RedirectPolicy
,Proxy
,TLSClientConfig
,Transport
등과 같은 클라이언트 설정 - Resty 디자인
- 클라이언트 수준에서 설정 및 선택, 필요한 경우 요청 수준에서 재정의의 옵션 제공
- 요청 및 응답을 위한 미들웨어
- 필요한 경우
resty.New()
를 사용하여 여러 클라이언트 생성 가능
- 동시성을 위한 고루틴 안전
- 디버그 모드 - 명료하고 풍부한 로그 표시
- Gzip - Go에서 자동 처리되며 Resty에서 후속 처리
-
HTTP/2
및HTTP/1.1
호환 - Bazel 지원
- Resty의 테스트를 위한 쉬운 모킹 제공
지원되는 Go 버전
go1.16
이상을 사용하는 것이 권장됩니다.
v1.10.0
버전부터 Resty는 go modules
를 지원합니다.
Resty 버전 v2
이상에서는 완전히 go modules 패키지 게시를 지원합니다. /vN
접미사 import를 이해하는 Go 버전을 사용해야 함:
- 1.9.7+
- 1.10.3+
- 1.11+