1.12.0 • Published 2 months ago

@vonage/server-client v1.12.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 months ago

Vonage Auth SDK for Node.js

GitHub Workflow Status Codecov Latest Release Contributor Covenant License

This is the Vonage Server Client SDK for Node.js used to wrap the authentication headers/signatures for use with Vonage APIs. To use it you will need a Vonage account. Sign up for free at vonage.com.

For full API documentation refer to developer.vonage.com.

Installation

With NPM

npm install @vonage/server-client

With Yarn

yarn add @vonage/server-client

Usage

To create a client, you will need to pass in a @vonage/auth object.

const { Auth } = require('@vonage/auth');
const { Client } = require('@vonage/server-client');

const vonageClient = new Client (new Auth({
        apiKey: API_KEY,
        apiSecret: API_SECRET,
        applicationId: APP_ID,
        privateKey: PRIVATE_KEY_PATH,
    }),
    options,
);

You will now be able to send requests using the client:

const response = await vonageClient.sendGetRequest('https://rest.nexmo.com/account/numbers')

Options

The constructor for the client takes in two parameters credentials and options. credentials is either an Auth or an object containing the settings from AuthInterface.

options allows adjusting api endpoints and the request timeout.

  • restHost: string (optional) - Allows overwriting the default https://rest.nexmo.com.
  • apiHost: string (optional) - Allows overwriting the default https://api.nexmo.com.
  • videoHost: string (optional) - Allows overwriting the default https://video.api.vonage.com.
  • timeout: int (optional) - Set a custom timeout for requests to Vonage in milliseconds. Defaults to the standard for Node http requests, which is 120,000 ms.
  • appendUserAgent: string (optional) - Set a custom string to be added to the user-agent header for the request

File Downloads

When downloading files, the request needs to be built with proper security headers set. Inside this package is the FileClient which will handle the request. You can download a file using the File Id or the FQURL.

const { Auth } = require('@vonage/auth');
const { FileClient } = require('@vonage/server-client');

const fileClient = new FileClient(new Auth({
    apiKey: API_KEY,
    apiSecret: API_SECRET,
    applicationId: APP_ID,
    privateKey: PRIVATE_KEY_PATH,
  }),
  options,
);

await fileClient.downloadFile('the-file-id-or-url', '/paht/to/save');

Testing

Run:

npm run test