All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cpprest.apiclient-header.mustache Maven / Gradle / Ivy

The newest version!
{{>licenseInfo}}
/*
 * ApiClient.h
 * 
 * This is an API client responsible for stating the HTTP calls 
 */

#ifndef ApiClient_H_
#define ApiClient_H_

{{{defaultInclude}}}
#include "ApiConfiguration.h"
#include "ApiException.h"
#include "IHttpBody.h"
#include "HttpContent.h"

#include  
#include  

#include 
#include 

{{#apiNamespaceDeclarations}}
namespace {{this}} {
{{/apiNamespaceDeclarations}}

using namespace {{modelNamespace}};

class {{declspec}} ApiClient
{
public:
    ApiClient( std::shared_ptr configuration = nullptr );
    virtual ~ApiClient();
    
    std::shared_ptr getConfiguration() const;
    void setConfiguration(std::shared_ptr configuration);
    
    static utility::string_t parameterToString(utility::string_t value);
    static utility::string_t parameterToString(int32_t value);
    static utility::string_t parameterToString(int64_t value);
    
    template
    static utility::string_t parameterToArrayString(std::vector value)
    {
        utility::stringstream_t ss;
        
        for( size_t i = 0; i < value.size(); i++)
        {
            if( i > 0) ss << U(", ");
            ss << ApiClient::parameterToString(value[i]);
        }

        return ss.str();        
    }
    
    pplx::task callApi( 
        const utility::string_t& path, 
        const utility::string_t& method, 
        const std::map& queryParams, 
        const std::shared_ptr postBody, 
        const std::map& headerParams, 
        const std::map& formParams, 
        const std::map>& fileParams,
        const utility::string_t& contentType
    ) const;
    
protected:

    std::shared_ptr m_Configuration;
};

{{#apiNamespaceDeclarations}}
}
{{/apiNamespaceDeclarations}}

#endif /* ApiClient_H_ */




© 2015 - 2024 Weber Informatics LLC | Privacy Policy