TSDuck v3.43-4426
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
ts::RestClient Class Reference

Basic helper for REST API clients. More...

#include <tsRestClient.h>

Public Member Functions

 RestClient (const RestArgs &args, Report &report)
 Constructor.
 
bool call (const UString &api, const UString &post_data=UString())
 Call a REST API.
 
bool getResponseJSON (json::ValuePtr &value) const
 Get the response in JSON form.
 
void getResponseText (UString &response) const
 Get the response in text form (interpreted from UTF-8).
 
int httpStatus () const
 Get the HTTP status code (200, 404, etc).
 
UString mimeType (bool simple=true, bool lowercase=true) const
 Get the MIME type in the response headers.
 
const ByteBlockresponse () const
 Get the response in binary format.
 
const UStringToUStringMultiMapresponseHeaders () const
 Get all response headers.
 
void setAcceptTypes (const UString &types)
 Set the accepted MIME types for the response.
 

Detailed Description

Basic helper for REST API clients.

Constructor & Destructor Documentation

◆ RestClient()

ts::RestClient::RestClient ( const RestArgs args,
Report report 
)

Constructor.

Parameters
[in]argsInitial REST operation arguments. This instance will keep a copy of it.
[in,out]reportWhere to report errors. This instance will keep a reference to it.

Member Function Documentation

◆ setAcceptTypes()

void ts::RestClient::setAcceptTypes ( const UString types)
inline

Set the accepted MIME types for the response.

Parameters
[in]typesAccepted MIME type or comma-separated types. Typical values are u"*&zwj;/*", u"text/plain", u"application/json", u"application/xml".

◆ call()

bool ts::RestClient::call ( const UString api,
const UString post_data = UString() 
)

Call a REST API.

Parameters
[in]apiPath of the API call. Concatenated with the RestArgs::api_root it is not empty.
[in]post_dataIf not empty, the request is a POST with these data.
Returns
True on success, false on error.

◆ httpStatus()

int ts::RestClient::httpStatus ( ) const
inline

Get the HTTP status code (200, 404, etc).

Valid after call().

Returns
The HTTP status code.

◆ responseHeaders()

const UStringToUStringMultiMap & ts::RestClient::responseHeaders ( ) const
inline

Get all response headers.

Valid after call(), until next call() or this instance is destroyed.

Returns
A constant reference to a map of response headers.

◆ mimeType()

UString ts::RestClient::mimeType ( bool  simple = true,
bool  lowercase = true 
) const
inline

Get the MIME type in the response headers.

Valid after call().

Parameters
[in]simpleIf true, simple type name. If false, return the full specification with options.
[in]lowercaseForce lowercase in the result.
Returns
The MIME type.

◆ response()

const ByteBlock & ts::RestClient::response ( ) const
inline

Get the response in binary format.

Valid after call(), until next call() or this instance is destroyed.

Returns
A constant reference to binary response.

◆ getResponseText()

void ts::RestClient::getResponseText ( UString response) const

Get the response in text form (interpreted from UTF-8).

Valid after call().

Parameters
[out]responseResponse in text form. All CR/LF are turned into simple LF. The last end-of-line, if any, is removed.

◆ getResponseJSON()

bool ts::RestClient::getResponseJSON ( json::ValuePtr value) const

Get the response in JSON form.

Valid after call().

Parameters
[out]valueResponse in JSON form.
Returns
True on success, false on error (typically when the returned data are not valid JSON).

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