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

Lanzamiento de Nexmo Ruby v7.0.0

Publicado el May 18, 2021

Tiempo de lectura: 3 minutos

El SDK de Nexmo Ruby ha publicado recientemente una versión mayor, v7.0.0. Esta nueva versión ha introducido mejoras en la gestión de errores de la API, ha renombrado el nombre de una clase existente para que coincida con el resto de SDKs de Nexmo y ha añadido más tipado estático.

Gestión de errores de la API

El cambio más significativo de esta nueva versión es la forma en que el SDK gestiona los errores de nuestras primeras API heredadas. Hay algunas API de Nexmo, como la SMS API por ejemplo, que devolverán un estado HTTP 200 OK junto con un código de error para informar de que algo ha ido mal.

Anteriormente, el SDK trataba todas las respuestas de la API que devolvían un 200 OK como un éxito y pasaba al usuario el cuerpo de la respuesta. Como resultado, los desarrolladores necesitaban crear comprobaciones condicionales en su código para un código de error dentro de la respuesta 200 OK para saber si algo iba mal. Un ejemplo clásico de cómo se hacía esto anteriormente con el SDK de Ruby es el siguiente:

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

Ahora, el SDK comprobará los códigos de estado distintos de cero por usted y lanzará una excepción automáticamente en su código si el código de estado es distinto de cero. Esto elimina la necesidad de crear comprobaciones condicionales como la anterior dentro de su aplicación. En su lugar, ahora funciona una versión más condensada:

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

Si hay un problema, el SDK lanzará una excepción e informará de la error-text y status de la API. Esa información puede utilizarse para buscar más detalles en la referencia de la API. Por ejemplo, cada código de error correspondiente de la SMS API se puede encontrar en la sección Referencia de la API con más detalles sobre su significado.

Nombres de las clases

El equipo del SDK de Nexmo ha estado muy ocupado asegurándose de que todos nuestros SDK se ajustan a nuestra Especificación de biblioteca de servidor. Recientemente hemos renovado la especificación - puedes leer sobre ese trabajo en un post del líder de la iniciativa Server SDK, Chris Tankersley, en el blog de Nexmo.

Como parte de la Audit del SDK de Ruby, descubrimos que una de nuestras clases tenía un nombre distinto al del resto de nuestros SDK. Sabemos que muchos desarrolladores no sólo trabajan en un idioma, y para nosotros es importante que la experiencia de uso de nuestros SDK sea lo más coherente posible en todos los idiomas. Cuando haya diferencias, deben ser el resultado de las particularidades de cada idioma, y las distinciones idiosincrásicas deben reducirse al mínimo.

Por lo tanto, hemos renombrado la clase Calls a la clase Voice. Se trata de un cambio de última hora, así que téngalo en cuenta cuando decida actualizar a la versión 7.0.0.

Tipificación estática

Hemos introducido la tipificación estática en el SDK de Ruby en la versión 6.3.0. Puedes leer más sobre las razones que nos han llevado a hacerlo en la publicación en el blog y seguir parte del proceso de adopción en nuestra serie de serie de YouTube.

Nos hemos propuesto introducir gradualmente más firmas de métodos en cada nueva versión. En esta versión, hemos introducido la comprobación estática de tipos en los métodos Account y Alerts . Éstas se unen a la clase SMS en nuestra creciente lista de clases tipadas estáticamente.

¿Y ahora qué?

Tenemos más desarrollos interesantes para el SDK de Ruby en proyecto. Entre ellos se incluye la incorporación de Conversaciones, Mensajes y Despacho cuando dejen de estar en fase beta y pasen a estar disponibles de forma general.

El código base del SDK está disponible públicamente en GitHuby agradecemos las contribuciones y la participación. Únase a nosotros en la conversación en GitHub o conecte con nosotros en el Comunidad Nexmo Slack.

Compartir:

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

Ben es un desarrollador de segunda carrera que anteriormente pasó una década en los campos de la educación de adultos, la organización comunitaria y la gestión de organizaciones sin ánimo de lucro. Trabajó como defensor de los desarrolladores para Vonage. Escribe regularmente sobre la intersección entre el desarrollo comunitario y la tecnología. Originario del sur de California y residente durante mucho tiempo en Nueva York, Ben reside ahora cerca de Tel Aviv (Israel).