using System.Threading.Tasks;
namespace DataConnection.REST.Interfaces
{
///
/// Interface for a generic REST service client.
///
public interface IRestServiceClient
{
///
/// Sends a GET request to the specified URI.
///
/// The type of the object to deserialize the response content to.
/// The URI the request is sent to.
/// Cancellation token.
/// The deserialized response content.
Task GetAsync(string requestUri, CancellationToken cancellationToken = default);
///
/// Sends a POST request to the specified URI.
///
/// The type of the request object.
/// The type of the object to deserialize the response content to.
/// The URI the request is sent to.
/// The HTTP request content sent to the server.
/// Cancellation token.
/// The deserialized response content.
Task PostAsync(string requestUri, TRequest payload, CancellationToken cancellationToken = default);
// Add other methods as needed (PUT, DELETE, PATCH, etc.)
// Consider adding methods for handling raw HttpResponseMessage or string responses
}
}