Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::interfaces::IHttpClient Interface Referenceabstract

Abstract interface for HTTP client implementations. More...

#include <http_client_interface.h>

Inheritance diagram for kcenon::common::interfaces::IHttpClient:
Inheritance graph
Collaboration diagram for kcenon::common::interfaces::IHttpClient:
Collaboration graph

Public Member Functions

virtual ~IHttpClient ()=default
 
virtual ::kcenon::common::Result< http_responsesend (const http_request &request)=0
 Send an HTTP request synchronously.
 
virtual bool is_available () const =0
 Check if the HTTP client is available and properly configured.
 
virtual std::string get_implementation_name () const
 Get the implementation name for logging/debugging.
 

Detailed Description

Abstract interface for HTTP client implementations.

This interface defines the contract for HTTP client implementations, allowing modules to make HTTP requests without direct dependencies on specific HTTP libraries (e.g., libcurl, ASIO, etc.).

Note
Implementations should be thread-safe for concurrent requests.

Example usage:

// Synchronous request
http_request req{"https://api.example.com/data"};
req.set_content_type("application/json");
auto result = client->send(req);
if (result.is_ok()) {
auto& response = result.value();
if (response.is_success()) {
std::cout << response.body_as_string() << std::endl;
}
}
http_request & set_content_type(const std::string &content_type)
Set Content-Type header.

Definition at line 211 of file http_client_interface.h.

Constructor & Destructor Documentation

◆ ~IHttpClient()

virtual kcenon::common::interfaces::IHttpClient::~IHttpClient ( )
virtualdefault

Member Function Documentation

◆ get_implementation_name()

virtual std::string kcenon::common::interfaces::IHttpClient::get_implementation_name ( ) const
inlinenodiscardvirtual

Get the implementation name for logging/debugging.

Returns
Implementation identifier string

Implemented in kcenon::common::interfaces::null_http_client.

Definition at line 232 of file http_client_interface.h.

232 {
233 return "IHttpClient";
234 }

◆ is_available()

virtual bool kcenon::common::interfaces::IHttpClient::is_available ( ) const
nodiscardpure virtual

Check if the HTTP client is available and properly configured.

Returns
true if client can make requests, false otherwise

Implemented in kcenon::common::interfaces::null_http_client.

◆ send()

virtual ::kcenon::common::Result< http_response > kcenon::common::interfaces::IHttpClient::send ( const http_request & request)
pure virtual

Send an HTTP request synchronously.

Parameters
requestThe HTTP request to send
Returns
Result containing response or error information

Implemented in kcenon::common::interfaces::null_http_client.


The documentation for this interface was generated from the following file: