https://d226lax1qjow5r.cloudfront.net/blog/blogposts/nexmo-ruby-v7-0-0-release-dr/image.png

Nexmo Ruby v7.0.0 Release

Publié le May 18, 2021

Temps de lecture : 2 minutes

Le SDK Nexmo Ruby a récemment publié une version majeure, la v7.0.0. Cette nouvelle version introduit un support amélioré pour la gestion des erreurs de l'API, renomme une classe existante pour correspondre au reste des SDK Nexmo, et ajoute plus de typage statique.

Gestion des erreurs de l'API

Le changement le plus important dans cette nouvelle version est la façon dont le SDK gère les erreurs provenant de nos API les plus anciennes. Certaines API de Nexmo, comme l'API SMS par exemple, renvoient un statut 200 OK ainsi qu'un code d'erreur pour signaler que quelque chose s'est mal passé.

Auparavant, le SDK traitait toutes les réponses de l'API renvoyant un 200 OK comme un succès et transmettait à l'utilisateur le corps de la réponse. Par conséquent, les développeurs devaient créer des contrôles conditionnels dans leur code pour un code d'erreur dans la réponse 200 OK pour savoir si quelque chose ne va pas. Voici un exemple classique de la manière dont on procédait auparavant avec le SDK Ruby :

response = client.sms.send(
  from: 'Acme Inc',
  to: TO_NUMBER,
  text: 'A text message sent using the Nexmo SMS API'
)

if response['messages'].first['status'] == 0
  puts 'Success'
else
  puts "Error Code #{response['messages'].first['status']}: #{response['messages'].first['error-text']}"
end

Désormais, le SDK vérifiera pour vous les codes d'état non nuls et lèvera automatiquement une exception dans votre code si le code d'état est non nul. Il n'est donc plus nécessaire de créer des contrôles conditionnels comme celui ci-dessus dans votre application. Au lieu de cela, une version plus condensée fonctionne maintenant :

response = client.sms.send(
  from: 'Acme Inc',
  to: TO_NUMBER,
  text: 'A text message sent using the Nexmo SMS API'
)

En cas de problème, le SDK lèvera une exception et communiquera les informations suivantes error-text et status de l'API. Ces informations peuvent être utilisées pour obtenir plus de détails dans la référence de l'API. Par exemple, chaque code d'erreur correspondant à l'API SMS peut être trouvé dans la Référence API avec plus de détails sur sa signification.

Nom des classes

L'équipe Nexmo SDK a veillé à ce que tous nos SDK soient conformes à notre Spécification de la bibliothèque du serveur. Nous avons récemment réorganisé la spécification - vous pouvez lire ce travail dans un billet du responsable de l'initiative SDK Serveur, Chris Tankersley, sur le blog Nexmo.

Dans le cadre de l'audit du SDK Ruby, nous avons découvert que l'une de nos classes portait un nom distinct du reste de nos SDK. Nous savons que de nombreux développeurs ne travaillent pas que dans une seule langue, et il est important pour nous que l'expérience d'utilisation de nos SDK reste aussi cohérente que possible d'une langue à l'autre. S'il existe des différences, elles doivent résulter des particularités de chaque langue et les distinctions idiosyncrasiques doivent être réduites au minimum.

Nous avons donc renommé la classe Calls en Voice. Il s'agit d'un changement radical, dont vous devez tenir compte si vous décidez de passer à la version 7.0.0.

Le typage statique

Nous avons introduit le typage statique dans le SDK Ruby lors de la sortie de la version 6.3.0. Vous pouvez lire les raisons qui nous ont poussés à le faire dans le billet de blog sur la version et suivre les premiers pas de l'adoption dans notre série YouTube.

Nous avons décidé d'introduire progressivement davantage de signatures de méthodes dans chaque nouvelle version. Dans cette version, nous avons introduit la vérification statique des types pour les méthodes Account et Alerts à la vérification statique des types. Elles rejoignent la classe SMS dans notre liste croissante de classes statiquement typées.

Quelle est la prochaine étape ?

Nous avons d'autres développements passionnants pour le SDK Ruby en préparation. Il s'agit notamment de l'ajout du module Conversations, Messages et Dispatch une fois qu'elles seront sorties de la phase bêta et qu'elles seront disponibles.

La base de code du SDK est accessible au public sur GitHubet nous accueillons volontiers les contributions et la participation. Rejoignez-nous dans la conversation sur GitHub ou connectez-vous avec nous sur le Communauté Nexmo Slack.

Partager:

https://a.storyblok.com/f/270183/384x384/e5480d2945/ben-greenberg.png
Ben GreenbergAnciens de Vonage

Ben est un développeur en seconde carrière qui a auparavant passé une décennie dans les domaines de la formation pour adultes, de l'organisation communautaire et de la gestion d'organisations à but non lucratif. Il a travaillé comme défenseur des développeurs pour Vonage. Il écrit régulièrement sur l'intersection du développement communautaire et de la technologie. Originaire de Californie du Sud et ayant longtemps vécu à New York, Ben réside aujourd'hui près de Tel Aviv, en Israël.