UNPKG

graphdb

Version:

Javascript client library supporting GraphDB and RDF4J REST API.

122 lines (121 loc) 4.13 kB
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");