Program Listing for File IApiClient.h
↰ Return to documentation for file (axr.sdk/net/IApiClient.h
)
// Copyright (C) AcceleratXR, Inc. All rights reserved.
//
// Author: Jean-Philippe Steinmetz <info@acceleratxr.com>
#pragma once
#include "../Configuration.h"
#include "../Exception.h"
#include "IHttpBody.h"
#include "HttpContent.h"
#include <any>
#include <vector>
#include <cpprest/asyncrt_utils.h>
namespace axr {
namespace sdk {
namespace net {
enum class HttpMethod
{
DEL,
GET,
HEAD,
POST,
PUT
};
class IApiClient
{
public:
virtual pplx::task<utility::string_t> Send(
const utility::string_t& path,
const HttpMethod method,
const std::map<utility::string_t, utility::string_t>& queryParams,
const std::shared_ptr<IHttpBody> postBody,
const std::map<utility::string_t, utility::string_t>& headerParams,
const utility::string_t& contentType
) = 0;
virtual pplx::task<utility::string_t> SendForm(
const utility::string_t& path,
const HttpMethod method,
const std::map<utility::string_t, utility::string_t>& formParams,
const std::map<utility::string_t, utility::string_t>& queryParams,
const std::map<utility::string_t, utility::string_t>& headerParams
) = 0;
virtual pplx::task<utility::string_t> SendFile(
const utility::string_t& path,
const HttpMethod method,
const std::map<utility::string_t, std::shared_ptr<HttpContent>>& fileParams,
const std::map<utility::string_t, utility::string_t>& queryParams,
const std::map<utility::string_t, utility::string_t>& headerParams,
const utility::string_t& contentType
) = 0;
virtual pplx::task<void> Delete(const utility::string_t& path, const std::map<utility::string_t, utility::string_t>& queryParams, const std::map<utility::string_t, utility::string_t>& headerParams) = 0;
virtual pplx::task<Variant> Get(const utility::string_t& path, const std::map<utility::string_t, utility::string_t>& queryParams, const std::map<utility::string_t, utility::string_t>& headerParams) = 0;
virtual pplx::task<std::uint64_t> Head(const utility::string_t& path, const std::map<utility::string_t, utility::string_t>& queryParams, const std::map<utility::string_t, utility::string_t>& headerParams) = 0;
virtual pplx::task<Variant> Post(const utility::string_t& path, const Variant& body, const std::map<utility::string_t, utility::string_t>& headerParams) = 0;
virtual pplx::task<Variant> Put(const utility::string_t& path, const Variant& body, const std::map<utility::string_t, utility::string_t>& headerParams) = 0;
};
} // namespace net
} // namespace sdk
} // namespace axr