An open API service indexing awesome lists of open source software.

https://github.com/kapetacom/sdk-nodejs-rest-client


https://github.com/kapetacom/sdk-nodejs-rest-client

nodejs-sdk

Last synced: 17 days ago
JSON representation

Awesome Lists containing this project

README

          

# Kapeta NodeJS REST Client

This provides a REST client for use with Kapeta.

It wraps the NodeJS `fetch` API and provides a simple interface for making requests within Kapeta.

The specific REST clients are generated by Kapeta and will extend the RestClient class in this package.

## Usage

The RestClient class is not meant to be used directly - you should use the generated subclasses.

They will however all have the same interface which is documented here.

### Making requests

Normally you will make a request by calling the generated method on the client - however you can also make a request directly by calling the `$create` or `$execute` method on the client directly.

`client.$create` will return a Request object which you can then modify before sending it with `request.call()`.

`client.$execute` will send the request immediately.

### Headers

You can configure headers on 3 levels which you can see below.

In addition to the withHeader method there are also a few convenience methods for common headers:

- `withContentType(contentType:string)`: Sets the Content-Type header
- `withAuthorization(authorization:string)`: Sets the Authorization header
- `withBearerToken(token:string)`: Sets the Authorization header with a Bearer token

#### Per request

Sets headers for this request only

```typescript
const response = await client.someMethodRequest().withHeader('X-Some-Header', 'some-value').call();
```

#### Per client

Sets headers for all requests made by this client.

**Note** the "$" in front of the method name. This is to avoid name collisions with the generated methods.

```typescript
const client = new SomeClient().$withHeader('X-Some-Header', 'some-value');
const response = await client.someMethod();
```

#### Globally:

Sets headers for all requests made by all clients

```typescript
RestClient.setDefaultHeader('X-Some-Header', 'some-value');
const client = new SomeClient();
const response = await client.someMethod();
```

### Timeouts

To configure the request timeout you have an option to do so on 3 levels:

#### Per request

```typescript
const response = await client
.someMethodRequest()
.withTimeout(1000) // Set timeout to 1 second
.call();
```

#### Per client

```typescript
const client = new SomeClient().$withTimeout(1000); // Set timeout to 1 second
const response = await client.someMethod();
```

#### Globally:

```typescript
RestClient.setDefaultTimeout(1000); // Set timeout to 1 second
const client = new SomeClient();
const response = await client.someMethod();
```