Prisma
Trabajar con API es estupendo, pero a veces no hace falta utilizar la API real para llevar a cabo el trabajo de desarrollo. Una herramienta que puede resultarte útil incluir en tu flujo de trabajo de desarrollo es Prisma de Semáforo. Prism es un servidor simulado que imita nuestras API en vivo. Puede ejecutarlo localmente para probar sus llamadas a la API durante el desarrollo, sin incurrir en costes de uso.
Prism entiende el OpenAPI que publicamos para cada una de nuestras API, por lo que puedes usar este enfoque para trabajar con cualquiera de las API de Vonage.
Instalar Prism
Prism es una herramienta de Node.js, por lo que tendrás que tener Node.js instalado en tu equipo. Completo documentación e instrucciones de instalación Hay varias disponibles, pero la versión resumida es una npm install comando:
npm install -g @stoplight/prism-cli
Compruebe que el comando está instalado y funciona ejecutando prism --version desde un terminal.
Consigue la especificación OpenAPI
Para consultar la especificación OpenAPI de cualquiera de nuestras API, accede a dicha API desde la Página de inicio de la documentación. Seleccione la referencia API en el menú de la izquierda y utilice el botón de descarga YAML para descargar la especificación API.

Una vez que tenga el .yml una vez que hayas elegido el archivo que quieras, ya estás listo para iniciar Prism.
Iniciar un servidor simulado con Prism
Desde el terminal, inicie prism con un comando como este:
prism mock [api-spec.yml]
Por ejemplo, en el caso de la Number Insight API, mi comando y su resultado tienen este aspecto:
$ prism mock number-insight.yml
[12:13:06] › [CLI] … awaiting Starting Prism…
[12:13:06] › [CLI] ℹ info GET http://127.0.0.1:4010/basic/json?number=1%295-2%209%2B2&country=UV
[12:13:06] › [CLI] ℹ info GET http://127.0.0.1:4010/standard/xml?number=67-64%298427&country=OU&cnam=false
[12:13:06] › [CLI] ℹ info GET http://127.0.0.1:4010/advanced/async/json?callback=sunt%20deserunt%20dolore%20id&number=%2B1208&country=CM&cnam=false&ip=accusamus
[12:13:06] › [CLI] ℹ info GET http://127.0.0.1:4010/advanced/xml?number=-47&country=MU&cnam=false&ip=non
[12:13:06] › [CLI] ▶ start Prism is listening on http://127.0.0.1:4010
La última línea de la salida muestra dónde se está ejecutando Prism; para mí es localmente en el puerto 4010.
Solicitudes API a Prism
Con la URL mostrada en la salida de inicio de Prism como URL base, utilice su cliente HTTP favorito para probar la API de ejemplo. En el ejemplo anterior se utilizó la API Number Insight, por lo que podría realizar una solicitud curl como esta:
curl "http://localhost:4010/basic/json?api_key=abcd1234&api_secret=VerySecret1&number=44777000777"
La respuesta de Prism tiene los mismos campos que la API en producción y algunos valores de ejemplo, lo que la convierte en un sustituto ideal de la «API real» a la hora de realizar pruebas.
Para una forma aún más fácil de trabajar con Prism y hacer peticiones a la API, prueba a importar a Postman la misma especificación OpenAPI que le diste a Prism y utiliza la colección de peticiones ya preparadas. Cambiando la directiva {{baseUrl}} variable, puedes usar rápidamente Postman y Prism para explorar la forma de cualquier API de Vonage sin cargos.
Utilice Prism con su aplicación
Todos nuestros SDK permiten modificar la URL base a la que se dirigen las solicitudes de la API (tal y como se detalla en el README de cada una de las bibliotecas) para poder utilizar otros puntos finales para las pruebas.
Prisma Uso avanzado
Una vez que te hayas familiarizado con Prism, aquí tienes algunos consejos para dar un paso más allá.
Solicitar una respuesta específica
Nuestras API pueden devolver respuestas de error en determinadas situaciones, y puede resultar complicado reproducir esas situaciones de error en la plataforma en producción. El uso de Prism ofrece la oportunidad de probar las aplicaciones con todas las respuestas posibles.
Algunas de nuestras especificaciones de API incluyen descripciones detalladas de las respuestas de error, y puedes utilizar el nombre de la respuesta para pedirle a Prism que la devuelva.
Por ejemplo, en la API Verify, encontrará esto en las respuestas de ejemplo de la especificación de la API:
examples:
success:
summary: Request was started
value:
request_id: abcdef0123456789abcdef0123456789
status: "0"
throttled:
summary: Request limit exceeded
value:
status: "1"
error_text: Throttled
account-disabled:
summary: Account is barred
value:
status: "8"
error_text: The api_key you supplied is for an account that has been barred from submitting messages.
rejected:
summary: Rejected
value:
status: "15"
error_text: The destination number is not in a supported network
Por defecto, Prism devuelve la primera respuesta, lo cual está muy bien, es un buen ejemplo de lo que la API suele devolver.
Sin embargo, comprobar que tu código maneja algunas de estas otras posibles respuestas no sería lo ideal. Aquí es donde Prism puede ser de gran ayuda. Añadiendo un __example a su petición, puede seleccionar cuál de los ejemplos debe devolver Prism. Por ejemplo, para realizar una solicitud curl a la API Verify y que devuelva la respuesta "acelerada", sería así:
curl "http://localhost:4010/json?api_key=abcd1234&api_secret=VerySecret1&number=44777000777&brand=Test&__example=throttled"
Utilizando Prism de esta forma puedes comprobar el comportamiento de tu aplicación con todas las respuestas que puede devolver la API.
Mejor manejo de JSON con JQ
Si estás trabajando con JSON en la línea de comandos, como en los ejemplos de curl que se muestran aquí, prueba esta herramienta jq para mejorar tu forma de trabajar con JSON. Es un gran formateador en sí mismo, y puede extraer campos particulares de la respuesta o manejar los datos de otras maneras también.
En su forma más simple, úselo para obtener una salida más agradable del ejemplo curl que usamos cuando probamos Prism por primera vez:
curl "http://localhost:4010/basic/json?api_key=abcd1234&api_secret=VerySecret1&number=44777000777" | jq "."