https://d226lax1qjow5r.cloudfront.net/blog/blogposts/nexmo-node-server-sdk-support-host-overriding-dr/nodejs-sdk-update-2400x1200-1.png

Le SDK serveur Node.js de Nexmo a ajouté la prise en charge de la surcharge d'hôte

Publié le April 27, 2021

Temps de lecture : 1 minute

Nous avons récemment publié la v2.6.0 de notre SDK Node.js et nous avons ajouté la possibilité de modifier l'hôte utilisé pour effectuer les requêtes HTTP.

Pourquoi ?

Cette fonction vous permet de remplacer les hôtes par défaut, api.nexmo.com et rest.nexmo.compar défaut dans le SDK. L'une des utilisations les plus courantes de cette fonctionnalité consiste à contourner l'équilibreur de charge et à envoyer les requêtes HTTP vers l'un de nos centres de données spécifiques, par exemple, api-sg-1.nexmo.com.

Jetons un coup d'œil à notre "Passer un appel sortant avec un NCCO" et modifions-le pour qu'il utilise le centre de données de Singapour lors de l'appel téléphonique.

const Nexmo = require('nexmo')

const nexmo = new Nexmo({
  apiKey: NEXMO_API_KEY,
  apiSecret: NEXMO_API_SECRET,
  applicationId: NEXMO_APPLICATION_ID,
  privateKey: NEXMO_APPLICATION_PRIVATE_KEY_PATH
}, {
  apiHost: 'api-sg-1.nexmo.com'
})

nexmo.calls.create({
  to: [{
    type: 'phone',
    number: TO_NUMBER
  }],
  from: {
    type: 'phone',
    number: NEXMO_NUMBER
  },
  ncco: [{
    "action": "talk",
    "text": "This is a text to speech call from Nexmo"
  }]
});

En y regardant de plus près, la seule modification que nous avons apportée à l'extrait de code est l'ajout d'un objet options dans l'instance Nexmo avec une propriété apiHost avec une propriété

Un autre cas d'utilisation courant de cette fonctionnalité est l'utilisation d'un proxy ou d'une passerelle pour inspecter vos requêtes avant qu'elles ne soient transmises à l'API Nexmo. Utilisons curlhub pour inspecter tout notre trafic API.

curlhub interfacecurlhub interface

Après votre inscription, curlhub vous donne un . Bucket Id. Par exemple, n43s3qc13thd. Ce nom est ajouté à tout hôte que vous souhaitez utiliser comme proxy. Ainsi, si nous voulons proxyer api.nexmo.coml'hôte curlhub correspondant est api-nexmo-com-n43s3qc13thd.curlhub.io. La même logique s'applique pour rest.nexmo.comet l'hôte curlhub correspondant est rest-nexmo-com-n43s3qc13thd.curlhub.io.

Afin de les utiliser comme mandataires pour les requêtes effectuées par notre SDK, nous devons ajouter les éléments suivants apiHost et restHost à notre instance new Nexmo instance.

const Nexmo = require('nexmo')

const nexmo = new Nexmo({
  apiKey: NEXMO_API_KEY,
  apiSecret: NEXMO_API_SECRET,
  applicationId: NEXMO_APPLICATION_ID,
  privateKey: NEXMO_APPLICATION_PRIVATE_KEY_PATH
}, {
  apiHost: 'api-nexmo-com-n43s3qc13thd.curlhub.io',
  restHost: 'rest-nexmo-com-n43s3qc13thd.curlhub.io'
})

Prochaines étapes

Nous travaillons à l'amélioration de notre SDK Node.js, et vous pouvez suivre nos progrès à l'adresse suivante https://github.com/nexmo/nexmo-node. Si vous avez des suggestions ou des problèmes, n'hésitez pas à les soulever dans GitHub ou dans notre communauté slack.

Partager:

https://a.storyblok.com/f/270183/384x384/dabe7c5397/laka.png
Alex LakatosAnciens de Vonage

Alex Lakatos est un défenseur des développeurs JavaScript pour Nexmo. Pendant son temps libre, il est bénévole chez Mozilla en tant que Tech Speaker et Reps Mentor. Développeur JavaScript travaillant sur le web ouvert, il en repousse les limites tous les jours. Lorsqu'il ne programme pas à Londres, il aime parcourir le monde, il est donc probable que vous le croisiez dans un salon d'aéroport.