graphdb
Version:
Javascript client library supporting GraphDB and RDF4J REST API.
122 lines (121 loc) • 4.13 kB
TypeScript
export = HttpClient;
/**
* Promise based HTTP client that delegates requests to Axios.
*
* The purpose of the delegating is to have an abstraction layer on top of the
* used library.
*
* By default all requests are without a timeout, e.g. execution time is not
* limited. To change that use {@link #setDefaultReadTimeout} and
* {@link #setDefaultWriteTimeout} or provide one in each request's
* configuration object.
*
* @class
* @author Mihail Radkov
* @author Svilen Velikov
*/
declare class HttpClient {
/**
* Serializes the provided parameters in a way that can be properly read by
* the RDF4J server.
*
* It ignores any null or undefined parameters and repeats array parameters.
*
* @private
* @static
* @param {object} params the parameters for serialization
* @return {string} the serialized parameters
*/
private static paramsSerializer;
/**
* Instantiates new HTTP client with the supplied base URL and default
* request timeouts.
*
* @constructor
* @param {string} baseURL base URL that will be prepend to all requests
* GET
*/
constructor(baseURL: string);
axios: any;
readTimeout: number;
writeTimeout: number;
/**
* Instantiates a logger for this http client instance.
*
* @private
* @param {string} baseURL the URL for this client that will be
* logged for each request
*/
private initLogger;
logger: ConsoleLogger;
/**
* Sets the provided header map as default for all requests.
*
* Any additional headers provided in the request configuration will
* be merged with this default map.
*
* @param {Map<string, string>} headers map with default headers
* @return {HttpClient} the current client for method chaining
*/
setDefaultHeaders(headers: Map<string, string>): HttpClient;
/**
* Sets the default request read timeout. It will be used in case requests
* don't explicitly specify it in their request configurations.
*
* @param {number} readTimeout the default read timeout
* @return {HttpClient} the current client for method chaining
*/
setDefaultReadTimeout(readTimeout: number): HttpClient;
/**
* Sets the default request write timeout. It will be used in case requests
* don't explicitly specify it in their request configurations.
*
* @param {number} writeTimeout the default write timeout
* @return {HttpClient} the current client for method chaining
*/
setDefaultWriteTimeout(writeTimeout: number): HttpClient;
/**
* Performs HTTP request using the supplied request builder.
*
* @param {HttpRequestBuilder} requestBuilder
* @return {Promise<any>} a promise resolving to the request's response
*/
request(requestBuilder: HttpRequestBuilder): Promise<any>;
/**
* Returns request configuration suitable for from the provided request
* builder.
*
* It generates correlation identifier under the <code>x-request-id</code>
* header and sets default timeout if it was not provided in the builder.
*
* @private
* @param {HttpRequestBuilder} requestBuilder request builder
* configuration builder used to produce the request configuration
* request config builder
* @return {Object<string, string>}
*/
private getRequestConfig;
/**
* Sets the required x-request-id header.
*
* @private
* @param {HttpRequestBuilder} requestBuilder
*/
private addXRequestIdHeader;
/**
* Adds a default timeout if it is not explicitly specified in the
* request builder.
*
* @private
* @param {HttpRequestBuilder} requestBuilder request object supplied to
* the http client for specific request
*/
private addDefaultTimeout;
/**
* Returns the base URL which this http client uses to send requests.
*
* @return {string} the base URL for each request
*/
getBaseURL(): string;
}
import ConsoleLogger = require("../logging/console-logger");