Documentation ¶
Index ¶
Constants ¶
View Source
const Version = "0.1.8"
Version バージョン
Variables ¶
View Source
var ( // DefaultUserAgent デフォルトのユーザーエージェント DefaultUserAgent = fmt.Sprintf( "go-http/v%s (%s/%s; +https://github.com/sacloud/go-http)", Version, runtime.GOOS, runtime.GOARCH, ) // DefaultAcceptLanguage デフォルトのAcceptLanguage DefaultAcceptLanguage = "" // DefaultRetryMax デフォルトのリトライ回数 DefaultRetryMax = 10 // DefaultRetryWaitMin デフォルトのリトライ間隔(最小) DefaultRetryWaitMin = 1 * time.Second // DefaultRetryWaitMax デフォルトのリトライ間隔(最大) DefaultRetryWaitMax = 64 * time.Second )
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { // AccessToken アクセストークン AccessToken string `validate:"required"` // AccessTokenSecret アクセストークンシークレット AccessTokenSecret string `validate:"required"` // ユーザーエージェント UserAgent string // Accept-Language AcceptLanguage string // Gzipを有効にするか Gzip bool // CheckRetryFunc リトライすべきか判定するためのfunc CheckRetryFunc func(ctx context.Context, resp *http.Response, err error) (bool, error) // リトライ回数 RetryMax int // リトライ待ち時間(最小) RetryWaitMin time.Duration // リトライ待ち時間(最大) RetryWaitMax time.Duration // APIコール時に利用される*http.Client 未指定の場合http.DefaultClientが利用される HTTPClient *http.Client // RequestCustomizer リクエスト前に*http.Requestのカスタマイズを行うためのfunc RequestCustomizer RequestCustomizer }
Client さくらのクラウドAPI(secure.sakura.ad.jp)向けのHTTPクライアント
レスポンスの状態に応じてリトライする仕組みを持つ デフォルトだとレスポンスステータスコード423、または503を受け取った場合にRetryMax回リトライする
リトライ間隔はRetryMinからRetryMaxまで指数的に増加する(Exponential Backoff)
リトライ時にcontext.Canceled、またはcontext.DeadlineExceededの場合はリトライしない
type RateLimitRoundTripper ¶
type RateLimitRoundTripper struct { // Transport 親となるhttp.RoundTripper、nilの場合http.DefaultTransportが利用される Transport http.RoundTripper // RateLimitPerSec 秒あたりのリクエスト数 RateLimitPerSec int // contains filtered or unexported fields }
RateLimitRoundTripper 秒間アクセス数を制限するためのhttp.RoundTripper実装
type RequestCustomizer ¶
RequestCustomizer リクエスト前に*http.Requestのカスタマイズを行うためのfunc
func ComposeRequestCustomizer ¶
func ComposeRequestCustomizer(funcs ...RequestCustomizer) RequestCustomizer
ComposeRequestCustomizer 任意の個数のRequestCustomizerを合成してRequestCustomizerを返す
複数のRequestCustomizerを指定した場合は先頭から呼びだされ、エラーを返したら即時returnする
type TracingRoundTripper ¶
type TracingRoundTripper struct { // Transport 親となるhttp.RoundTripper、nilの場合http.DefaultTransportが利用される Transport http.RoundTripper // OutputOnlyError trueの場合レスポンスのステータスコードが200番台の時はリクエスト/レスポンスのトレースを出力しない OutputOnlyError bool }
TracingRoundTripper リクエスト/レスポンスのトレースログを出力するためのhttp.RoundTripper実装
Client.Gzipがtrueの場合でも関知しないため利用者側で制御する必要がある
Click to show internal directories.
Click to hide internal directories.