Rest class
import {Rest} from 'aurelia-api';
Properties
.client
Type | Description |
---|---|
HttpClient | The HttpClient instance for requests |
.endpoint
Type | Description |
---|---|
string | The endpoint for which the Rest client is registered |
.defaults
Type | Description |
---|---|
{} | The fetch client defaults to use for all request |
Methods
All methods will:
- stringify the body, if it is an object and the
Content-Type
is set toapplication/json
(the default). - convert the body to querystring format, if the body is an object and the
Content-Type
is set to any other value. - leave the body unchanged, if the
Content-Type
is not set or when the body is not an object. - maintain trailing slashes of the resource parameter
All methods return a Promise with the server response parsed to an object if possible.
.request(method, path[, body][, options])
Perform a request to the server.
Parameters
Parameter | Type | Description |
---|---|---|
method | string | Request method. POST, GET, DELETE, PUT etc. |
path | string | Path to make the request to. |
body | object | The body (when permitted by method). |
options | object | Additional options for the fetch |
Returns
A new Promise
to be resolved with the request, or rejected with an error.
Examples
Here's an example of a basic login call.
import {Rest} from 'aurelia-api';
@inject(Rest)
export class MyViewModel {
constructor (restClient) {
restClient.request('POST', 'auth/login', {
username: 'bob',
password: 'Super secret'
})
.then(console.log)
.catch(console.error);
}
}
.find(resource, idOrCriteria[, options])
.findOne(resource, id, criteria[, options])
Find one or multiple resources. (GET request)
Parameters
Parameter | Type | Description |
---|---|---|
resource | string | The name of the resource you want. |
id | string/number | A specific ID. |
criteria | object | Object of supported filters. |
options | object | Additional options for the fetch |
Returns
A new Promise
to be resolved with the data request, or rejected with an error.
Examples
Here's an example on how to speak to a sails based API.
import {Rest} from 'aurelia-api';
@inject(Rest)
export class MyViewModel {
constructor (restClient) {
restClient.find('product', {
category: 5,
name : {contains: 'mouse'}
})
.then(console.log)
.catch(console.error);
}
}
.create(resource, body[, options])
A convenience method (naming) that does exactly the same as .post()
.
.post(resource, body[, options])
Send a POST request to supplied resource
.
Parameters
Parameter | Type | Description |
---|---|---|
resource | string | The name of the resource you wish to post to. |
body | object | The body to post. |
options | object | Additional options for the fetch |
Returns
A new Promise
to be resolved with the server response, or rejected with an error.
Examples
Here's an example on how to speak to a sails based API.
import {Rest} from 'aurelia-api';
@inject(Rest)
export class MyViewModel {
constructor (restClient) {
restClient.post('product', {
category: 5,
name : 'Optical mouse',
price : 4500
})
.then(console.log)
.catch(console.error);
}
}
.update(resource, idOrCriteria, body[, options])
.updateOne(resource, id, criteria, body[, options])
Send a PUT request to supplied resource
.
Parameters
Parameter | Type | Description |
---|---|---|
resource | string | The name of the resource you wish to update. |
id | string/number | A specific ID. |
criteria | object | Object of supported filters. |
body | object | The new values for the records. |
options | object | Additional options for the fetch |
Returns
A new Promise
to be resolved with the server response, or rejected with an error.
Examples
Here's an example on how to speak to a sails based API.
import {Rest} from 'aurelia-api';
@inject(Rest)
export class MyViewModel {
constructor (restClient) {
restClient.update('product', 17, {price: 4000})
.then(console.log)
.catch(console.error);
}
}
.patch(resource, idOrCriteria, body[, options])
.patchOne(resource, id, criteria, body[, options])
Send a PATCH request to supplied resource
.
Parameters
Parameter | Type | Description |
---|---|---|
resource | string | The name of the resource you wish to update. |
id | string/number | A specific ID. |
criteria | object | Object of supported filters. |
body | object | The new values for the records. |
options | object | Additional options for the fetch |
Returns
A new Promise
to be resolved with the server response, or rejected with an error.
Examples
Here's an example on how to speak to a sails based API.
import {Rest} from 'aurelia-api';
@inject(Rest)
export class MyViewModel {
constructor (restClient) {
restClient.patch('product', 17, {price: 4000})
.then(console.log)
.catch(console.error);
}
}
.destroy(resource, idOrCriteria[, options])
.destroyOne(resource, id, criteria[, options])
Delete one or multiple resources. (DELETE request)
Parameters
Parameter | Type | Description |
---|---|---|
resource | string | The name of the resource you wish to use. |
id | string/number | A specific ID. |
criteria | object | Object of supported filters. |
options | object | Additional options for the fetch |
Returns
A new Promise
to be resolved with the data request, or rejected with an error.
Examples
Here's an example on how to speak to a sails based API.
import {Rest} from 'aurelia-api';
@inject(Rest)
export class MyViewModel {
constructor (restClient) {
restClient.destroy('product', 17)
.then(console.log)
.catch(console.error);
}
}