Last updated

API / geotoolkit / http / AbstractHttpService / AbstractHttpService

Class: AbstractHttpService

http.AbstractHttpService.AbstractHttpService

Provide an abstract service for HTTP requests

Example

// Cancellation of request from external token
import {Cancel} from '@int/geotoolkit/util/Cancel';
...
const token = new Cancel();
http.get('/cancel', {
'cancel': token
}).then( (response) => { ... }, (error) => {
// TODO: Cancel
}).catch((error) => { ... });
setTimeout(() => {
token.cancel();
});

Table of contents

Constructors
Methods

Contents

Constructors

new AbstractHttpService(options)

Protected new AbstractHttpService(options?)

Parameters

Name Type
Optional optionsOptions
Methods

addRequestInterceptor

addRequestInterceptor(onFulfilled, onRejected?): string

Add request interceptor

Example

// Add request interceptor
import {deepMergeObject} from '@int/geotoolkit/base';
http.addRequestInterceptor((options) => {
return new Promise((resolve, reject) => {
const newOptions = deepMergeObject({'headers': {
'Authorization': 'Bearer ' + token
}}, options, true);
resolve(newOptions);
});
}, (error) => Promise.reject(error)
);

Parameters

Name Type Description
onFulfilled(options: any) => Promise<any>on fulfilled function to be called in promise
Optional onRejected(reason: Error) => Promise<any>on function to be called in promise if it is rejected

Returns

string

id of the interceptor, which can be used to delete


addResponseInterceptor

addResponseInterceptor(onFulfilled, onRejected?): string

Add response interceptor

Example

// Add response interceptor
http.addResponseInterceptor(function (response) {
return new Promise((resolve, reject) => {
// TODO with response
resolve(response);
});
}, (error) => Promise.reject(error) );

Parameters

Name Type Description
onFulfilled(options: any) => Promise<any>on fulfilled function to be called in promise
Optional onRejected(reason: Error) => Promise<any>on function to be called in promise if it is rejected

Returns

string

id of the interceptor, which can be used to delete


clone

Abstract clone(options?): AbstractHttpService

Create an instance of a new service with new default settings

Parameters

Name Type Description
Optional optionsOptionsoptions

Returns

AbstractHttpService


containsRequestInterceptor

containsRequestInterceptor(id): boolean

Verify if request interceptor with specified id exists

Parameters

Name Type Description
idstringid of interceptor to verify

Returns

boolean


containsResponseInterceptor

containsResponseInterceptor(id): boolean

Verify if response interceptor with specified id exists

Parameters

Name Type Description
idstringid of interceptor to verify

Returns

boolean


delete

delete(url, options?): Promise<any>

Send delete request

Parameters

Name Type Description
urlstringurl
Optional optionsRequestOptionsoptions

Returns

Promise<any>


dispatch

Protected Abstract dispatch(options?): Promise<any>

Dispatch request

See

Parameters

Name Type Description
Optional optionsRequestOptionsoptions

Returns

Promise<any>


get

get(url, options?): Promise<any>

Send get request

Example

// make a simple GET request
http.get(url).then((response) => {
// Process data
}, (error) => {
// Error
});

Example

// make GET request and transform output
http.get(url, {
'responsetype': 'json',
'transformresponse': (response) => {
if (response['data']['version'] != null) {
return Promise.resolve(response['data']);
}
return Promise.reject('Server error');
}
}).then((data) => {
// Process data
}, (error) => {
// Error
});

Parameters

Name Type Description
urlstringurl
Optional optionsRequestOptionsoptions

Returns

Promise<any>


getClassName

getClassName(): string

Returns

string


getOptions

getOptions(): Options

Gets a default options

Returns

Options

options all options keys are case insensitive. It will be transformed to lowercase


getRequestInterceptors

Protected getRequestInterceptors(): any[]

Returns

any[]


getResponseInterceptors

Protected getResponseInterceptors(): any[]

Returns

any[]


head(url, options?): Promise<any>

Send head request

Parameters

Name Type Description
urlstringurl
Optional optionsRequestOptionsoptions

Returns

Promise<any>


mergeOptions

Protected mergeOptions<T>(options): T

Type parameters

NameType
Textends Record<string, any> = Record<string, any>

Parameters

Name Type Description
optionsToptions to merge

Returns

T

merged options


patch

patch(url, data, options?): Promise<any>

Send patch request

Parameters

Name Type Description
urlstringurl
dataanydata to be sent as the request message data.
Optional optionsRequestOptionsoptions

Returns

Promise<any>


post

post(url, data, options?): Promise<any>

Send post request

Example

// make a simple POST request
http.post(url, data).then((response) => {
// Process data
}, (error) => {
// Error
});

Parameters

Name Type Description
urlstringurl
dataanydata to be sent as the request message data.
Optional optionsRequestOptionsoptions

Returns

Promise<any>


put

put(url, data, options?): Promise<any>

Send put request

Parameters

Name Type Description
urlstringurl
dataanydata to be sent as the request message data.
Optional optionsRequestOptionsoptions

Returns

Promise<any>


removeRequestInterceptor

removeRequestInterceptor(id): boolean

Remove interceptor

Parameters

Name Type Description
idstringid of interceptor to remove

Returns

boolean

true if interceptor is removed


removeResponseInterceptor

removeResponseInterceptor(id): boolean

Remove response interceptor

Parameters

Name Type Description
idstringid of interceptor to remove

Returns

boolean

true if interceptor is removed


request

request(options?): Promise<any>

Send request It is necessary to specify baseUrl, url or both to make request. This method return promise to execute query.

Response object contains:

  • data: response data
  • options: provided options
  • status: as a rule response status of response
  • statusText: status text
  • request: an instance of request

See

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials|withCredentials

Example

// make a simple GET request
http.request({ method: 'get', 'url': url ).then((response) => {
// Process data
}, (error) => {
// Error
});

Parameters

Name Type Description
Optional optionsRequestOptionsoptions all options keys are case insensitive

Returns

Promise<any>


setOptions

setOptions(options?): void

Sets default options for the current instance of the service

Parameters

Name Type Description
Optional optionsOptionsoptions all options keys are case insensitive

Returns

void


getClassName

Static getClassName(): string

Returns

string