Octane API Client
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
octane::internal::FetchBase Class Referenceabstract

HttpClientクラスを通じてHTTP通信を行うインタフェース。 More...

#include <fetch.h>

Inheritance diagram for octane::internal::FetchBase:
Inheritance graph
[legend]

Public Types

using FetchResult = Result< FetchResponse, ErrorResponse >
 

Public Member Functions

virtual ~FetchBase () noexcept=0
 
virtual Result< _, ErrorResponseinit ()=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...
 

Detailed Description

HttpClientクラスを通じてHTTP通信を行うインタフェース。

このインタフェースを実装したクラスは3xx番台のレスポンスを受けたときにリダイレクト処理を行わなければならない。 また、このリダイレクト処理はHTTPヘッダのLocationに従う。 {

See also
Fetch } このインタフェースを実装したクラス。

Member Typedef Documentation

◆ FetchResult

Constructor & Destructor Documentation

◆ ~FetchBase()

octane::internal::FetchBase::~FetchBase ( )
pure virtualnoexcept

Member Function Documentation

◆ init()

virtual Result< _, ErrorResponse > octane::internal::FetchBase::init ( )
pure virtual

Fetchのインスタンスを初期化する。

このメソッドはインスタンス一つにつき一度だけ呼び出すことができる。 また、インスタンスを作成した直後に呼び出さなければならない。 失敗した場合は次のエラーレスポンスを返す。

  • ERR_CURL_INITIALIZATION_FAILED: CURLの初期化に失敗したとき
Returns
Result<_, ErrorResponse> 成功した場合は何も返さず、失敗した場合は上記のエラーレスポンスを返す。

Implemented in octane::internal::Fetch.

Here is the caller graph for this function:

◆ request() [1/3]

virtual FetchResult octane::internal::FetchBase::request ( HttpMethod  method,
std::string_view  url 
)
pure virtual

APIへのボディ部を持たないリクエストを発行する。

このメソッドはボディを持たないリクエストに使用する。 GET及びDELETEリクエストは必ずこのメソッドを使用しなければならない。 失敗した場合は次のエラーレスポンスを返す。

  • ERR_JSON_PARSE_FAILED: レスポンスのContent-Typeがapplication/jsonであったにもかかわらず正常なJSONデータがAPIから返却されなかったとき
  • ERR_INCORRECT_HTTP_METHOD: GET, POST, PUT, DELETE以外のHTTPメソッドを指定したとき
  • ERR_CURL_CONNECTION_FAILED: CURLの接続に失敗したとき
Parameters
[in]methodリクエストに使用するHTTPメソッド
[in]urlAPIへのURL
Returns
FetchResult 成功した場合はレスポンスのボディ部、失敗した場合は上記のエラーレスポンスを返す。

Implemented in octane::internal::Fetch.

Here is the caller graph for this function:

◆ request() [2/3]

virtual FetchResult octane::internal::FetchBase::request ( HttpMethod  method,
std::string_view  url,
const rapidjson::Document &  body 
)
pure virtual

APIへのJSON形式のボディ部を持つリクエストを発行する。

このメソッドはJSON形式のボディを持つリクエストに使用する。 GET及びDELETEリクエストはこのメソッドを使用してはならず、代わりにFetch::request(HttpMethod method, std::string_view url)を使用すること。 失敗した場合は次のエラーレスポンスを返す。

  • ERR_JSON_PARSE_FAILED: レスポンスのContent-Typeがapplication/jsonであったにもかかわらず正常なJSONデータがAPIから返却されなかったとき
  • ERR_INCORRECT_HTTP_METHOD: POST, PUT以外のHTTPメソッドを指定したとき
  • ERR_CURL_CONNECTION_FAILED: CURLの接続に失敗したとき
Parameters
[in]methodリクエストに使用するHTTPメソッド
[in]urlAPIへのURL
[in]bodyAPIリクエストのボディ部
Returns
FetchResult 成功した場合はレスポンスのボディ部、失敗した場合は上記のエラーレスポンスを返す。

Implemented in octane::internal::Fetch.

◆ request() [3/3]

virtual FetchResult octane::internal::FetchBase::request ( HttpMethod  method,
std::string_view  url,
std::string_view  mimeType,
const std::vector< std::uint8_t > &  body 
)
pure virtual

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)を使用すること。 失敗した場合は次のエラーレスポンスを返す。

  • ERR_JSON_PARSE_FAILED: レスポンスのContent-Typeがapplication/jsonであったにもかかわらず正常なJSONデータがAPIから返却されなかったとき
  • ERR_INCORRECT_HTTP_METHOD: POST, PUT以外のHTTPメソッドを指定したとき
  • ERR_CURL_CONNECTION_FAILED: CURLの接続に失敗したとき
Parameters
[in]methodリクエストに使用するHTTPメソッド
[in]urlAPIへのURL
[in]bodyAPIリクエストのボディ部
Returns
FetchResult 成功した場合はレスポンスのボディ部、失敗した場合は上記のエラーレスポンスを返す。

Implemented in octane::internal::Fetch.


The documentation for this class was generated from the following files: