|
Octane API Client
|
HttpClientクラスを通じてHTTP通信を行う。 More...
#include <fetch.h>


Public Member Functions | |
| Fetch (std::string_view token, std::string_view origin, std::string_view baseUrl, HttpClientBase *client) | |
| Construct a new Fetch object. More... | |
| virtual | ~Fetch () noexcept |
| virtual Result< _, ErrorResponse > | init () override |
| virtual FetchResult | request (HttpMethod method, std::string_view url) override |
| virtual FetchResult | request (HttpMethod method, std::string_view url, const rapidjson::Document &body) override |
| virtual FetchResult | request (HttpMethod method, std::string_view url, std::string_view mimeType, const std::vector< std::uint8_t > &body) override |
Public Member Functions inherited from octane::internal::FetchBase | |
| virtual | ~FetchBase () noexcept=0 |
| virtual Result< _, ErrorResponse > | init ()=0 |
| Fetchのインスタンスを初期化する。 More... | |
| virtual FetchResult | request (HttpMethod method, std::string_view url)=0 |
| APIへのボディ部を持たないリクエストを発行する。 More... | |
| virtual FetchResult | request (HttpMethod method, std::string_view url, const rapidjson::Document &body)=0 |
| APIへのJSON形式のボディ部を持つリクエストを発行する。 More... | |
| virtual FetchResult | request (HttpMethod method, std::string_view url, std::string_view mimeType, const std::vector< std::uint8_t > &body)=0 |
| APIへの任意のContent-Typeのボディ部を持つリクエストを発行する。 More... | |
Additional Inherited Members | |
Public Types inherited from octane::internal::FetchBase | |
| using | FetchResult = Result< FetchResponse, ErrorResponse > |
HttpClientクラスを通じてHTTP通信を行う。
このクラスは3xx番台のレスポンスを受けたときにリダイレクト処理を行う。 また、このリダイレクト処理はHTTPヘッダのLocationに従う。
| octane::internal::Fetch::Fetch | ( | std::string_view | token, |
| std::string_view | origin, | ||
| std::string_view | baseUrl, | ||
| HttpClientBase * | client | ||
| ) |
Construct a new Fetch object.
tokenは正当なAPIトークンでなければならない。 また、このトークンはHTTP拡張ヘッダ"X-Octane-API-Token"で送信される。 originはAPIサーバへのプロトコル、ドメイン、ポート番号を含む正当なAPIサーバのオリジンでなければならない。 例えば"http://localhost:3000"などの形式となる。 baseUrlはAPIと通信するときにオリジンの後につく共通のURLを指定する。 例えば"/api/v1"など。 これはFetch::requestのurl引数のベースURLとなる。 clientはHTTP通信を仲介するHttpClientBaseを実装する任意のインスタンスを指定する。通常はHttpClientクラスのインスタンスを指定すればよい。
| [in] | token | APIに送信するトークン |
| [in] | origin | APIサーバのオリジン |
| [in] | baseUrl | APIの起点となるURL |
| [in] | client | 通信を媒介するHttpClient |
|
virtualnoexcept |
|
overridevirtual |
Fetchのインスタンスを初期化する。このメソッドはインスタンス一つにつき一度だけ呼び出すことができる。 また、インスタンスを作成した直後に呼び出さなければならない。 失敗した場合は次のエラーレスポンスを返す。
Implements octane::internal::FetchBase.

|
overridevirtual |
APIへのボディ部を持たないリクエストを発行する。このメソッドはボディを持たないリクエストに使用する。 GET及びDELETEリクエストは必ずこのメソッドを使用しなければならない。 失敗した場合は次のエラーレスポンスを返す。
| [in] | method | リクエストに使用するHTTPメソッド |
| [in] | url | APIへのURL |
Implements octane::internal::FetchBase.


|
overridevirtual |
APIへのJSON形式のボディ部を持つリクエストを発行する。このメソッドはJSON形式のボディを持つリクエストに使用する。 GET及びDELETEリクエストはこのメソッドを使用してはならず、代わりにFetch::request(HttpMethod method, std::string_view url)を使用すること。 失敗した場合は次のエラーレスポンスを返す。
| [in] | method | リクエストに使用するHTTPメソッド |
| [in] | url | APIへのURL |
| [in] | body | APIリクエストのボディ部 |
Implements octane::internal::FetchBase.

|
overridevirtual |
APIへの任意のContent-Typeのボディ部を持つリクエストを発行する。このメソッドは任意のContent-Typeのボディを持つリクエストに使用する。 JSON形式のリクエストの場合はFetch::request(HttpMethod method,
std::string_view url, const rapidjson::Document& body)の使用を推奨する。 GET及びDELETEリクエストはこのメソッドを使用してはならず、代わりにFetch::request(HttpMethod method, std::string_view url)を使用すること。 失敗した場合は次のエラーレスポンスを返す。
| [in] | method | リクエストに使用するHTTPメソッド |
| [in] | url | APIへのURL |
| [in] | body | APIリクエストのボディ部 |
Implements octane::internal::FetchBase.
