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
- Host: GitHub
- URL: https://github.com/kapetacom/sdk-nodejs-rest-client
- Owner: kapetacom
- License: mit
- Created: 2019-06-22T18:53:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-15T13:31:02.000Z (almost 2 years ago)
- Last Synced: 2025-10-19T10:07:00.543Z (3 months ago)
- Topics: nodejs-sdk
- Language: TypeScript
- Size: 195 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
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();
```