Prisma
Trabajar con APIs es genial, pero a veces no es necesario trabajar con la API real para llevar a cabo el trabajo de desarrollo. Una herramienta que puede resultarle útil para incluir en su 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 Prisma
Prism es una herramienta node.js, por lo que necesitará tener node.js instalado localmente. Completo documentación e instrucciones de instalación están disponibles, pero la versión rápida es una npm install mando:
npm install -g @stoplight/prism-cli
Compruebe que el comando está instalado y funciona ejecutando prism --version desde un terminal.
Obtenga la especificación OpenAPI
Para encontrar la especificación OpenAPI de cualquiera de nuestras APIs, navegue hasta esa API desde la página 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 archivo que desee, ya está listo para iniciar Prisma.
Iniciar un servidor simulado con Prism
Desde el terminal, inicie prism con un comando como este:
prism mock [api-spec.yml]
Por ejemplo, para Number Insight API, mi comando y su salida 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 vivo y algunos valores de ejemplo, por lo que es un sustituto ideal para la "cosa real" cuando se realizan 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 admiten el cambio de la URL base a la que se dirigen las solicitudes de API (detallado en la sección README de cada una de las bibliotecas) para poder utilizar otros puntos finales para las pruebas.
Prisma Uso avanzado
Una vez que te hayas establecido con Prism, aquí tienes algunos consejos para pasar al siguiente nivel.
Solicitar una respuesta específica
Nuestras APIs pueden devolver respuestas de error en algunas situaciones, y puede ser difícil recrear esas situaciones de error en la plataforma en vivo. Prism ofrece la posibilidad de probar las aplicaciones con todas las respuestas posibles.
Algunas de nuestras especificaciones API tienen respuestas de error descritas en detalle, y puede utilizar el nombre de la respuesta para pedir 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á trabajando con JSON en la línea de comandos como en los ejemplos de curl mostrados aquí, pruebe la 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 "."