Go Resty
Go Restyは、RESTful APIクライアントを構築するためのGo言語ライブラリです。これにより、開発者は簡潔かつ強力なAPIを使用して、HTTPリクエストを簡単に送信し、レスポンスを処理することができます。
機能
- 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.Body()
で[]byte
配列として、またはresponse.String()
でstring
としてレスポンスにアクセス - レスポンス時間の取得
response.Time()
と受信時間の取得response.ReceivedAt()
-
-
JSON
やXML
などのコンテンツタイプを自動的にエンコードおよびデコード-
Content-Type
ヘッダとstruct/map
パラメータが提供されていない場合は、デフォルトでJSON
になる - JSONエンコーディング/デコーディングとXMLエンコーディング/デコーディングを上書きするオプションを提供
-
-
multipart/form-data
を介した1つ以上のファイルの簡単なアップロード- ファイルのコンテンツタイプを自動的に検出
- バックオフリトライメカニズムおよびリトライ条件関数参照のサポート
- RestyクライアントでのHTTPおよびRESTリクエストのためのミドルウェアサポート、リクエストおよびレスポンスを含む
-
Request.SetContext
のサポート -
BasicAuth
およびBearer
トークンのための認証オプション - すべてのリクエストまたは特定のリクエストのためのリクエスト
ContentLength
値の設定 - カスタムルート証明書とクライアント証明書
-
curl -o
コマンドに類似した方法でHTTPレスポンスを直接ダウンロード/保存 - クッキーのためのリクエストと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
接尾辞インポートを理解するGoバージョンの使用が必要です:
- 1.9.7以上
- 1.10.3以上
- 1.11以上