Header Ads Widget

Ticker

6/recent/ticker-posts

Tutorial: Creación de un servicio virtual con Ready! API

 Una vez que su API está definida, los desarrolladores de clientes quieren comenzar a usarla. Sin embargo, ¿qué pasa si no ha terminado de codificarlo? ¿Cómo puede probarlo y brindarles a sus consumidores la capacidad de comenzar a trabajar en sus aplicaciones antes de que el punto final esté en funcionamiento? ¿Con qué frecuencia se encuentra intentando lanzar una API REST en plazos ajustados? ¿Cómo puede encontrar errores en el código de su cliente ejecutando compilaciones automatizadas como parte de su proceso de Integración Continua (CI) sin tener su API en funcionamiento en todo momento? Estas pueden ser preguntas desafiantes, que deben responderse si va a ofrecer una API de alta calidad con SDK de cliente de primera categoría .

Los desarrolladores han expresado su deseo de un mejor soporte de herramientas que les ayude con estos problemas. SmartBear ha estado escuchando y recientemente lanzó un nuevo producto llamado Ready! API. Está diseñado para ayudarlo a resolver estos problemas de manera rápida y sencilla. En gran parte una evolución de su producto existente, SOAP UI, esta nueva herramienta incluye una interfaz y una cadena de herramientas más simples.

¡Aunque listo! La API tiene muchas características nuevas y geniales, en este tutorial paso a paso, nos centraremos en uno llamado ServiceV. Esta función le permite crear nuevos servicios virtuales o los llamados "Virt". Con él, puede simular el punto final de una API REST. Al hacerlo, puede comenzar a desarrollar aplicaciones antes de que el punto final real esté en funcionamiento. Esto puede reducir potencialmente el tiempo entre el lanzamiento de una API y su uso. También puede iniciarlo desde un servidor de CI para asegurarse de que los casos de prueba de integración pasen continuamente. Con esta función, SmartBear ha facilitado mucho la prueba de las API.

Para ver esto por sí mismo de primera mano, siga este tutorial para aprender cómo:

  • Combine ¡Listo! ServiceV de API con el SOAP UI Pro más conocido
  • Configurar un servicio virtual para simular una API REST
  • Configure un cliente REST para simular llamadas a la API REST

Creación de nuevos servicios virtuales

Comience con un nuevo proyecto de servicio virtual

Lo primero que debe hacer es crear el proyecto Virt. Para hacer esto en Ready! API, siga estos pasos:

  1. Vaya a la Service Vpestaña y seleccione New projectdel Filemenú.
    Paso 1.1

    Esto abrirá el New Projectdiálogo.

  2. En este cuadro de diálogo, seleccione Create empty projecty haga clic OK.
    Paso1.2

Esto creará un nuevo proyecto en ServiceV [Projects]
Ahora que tiene un proyecto, ¡agreguemos una API virtual!

Añadiendo una nueva virtud

Con el nuevo proyecto en la mano, ahora puede agregarle un servicio virtual. Esto lo utilizará el cliente más adelante. Para agregar una Virt, haga lo siguiente:

  1. Haga clic derecho ServiceV [Projects]y seleccione New Virt.
    Paso 2.1

  2. En el lado izquierdo del New Virtcuadro de diálogo, elija Empty RESTel tipo de Virt que le gustaría crear. Luego, dale un nombre (yo nombré el mío RESTMock) y haz clic OK.
    Paso2.2

Ahora tienes un proyecto y un servicio virtual. No es difícil, pero tampoco demasiado útil todavía. Pongámoslo a trabajar creando algunas acciones para simular el comportamiento de nuestra API ficticia.

Emular el comportamiento con VirtActions

Ahora tenemos un proyecto y un servicio virtual que no hace nada. El siguiente paso es agregar una acción virtual. Para hacer esto, siga estos pasos:

  1. Haz clic derecho en el nombre que le diste a tu Virt y selecciona Add new VirtActiondel menú contextual.
    Paso 3.1

    Esto abrirá el Add new virt actioncuadro de diálogo.

  2. En esta ventana, seleccione Methody escriba un Resource path(es decir, el URI de su API virtual). Por el bien de este tutorial, seleccione GETcomo método HTTP y Logincomo Resource path.
    Paso3.2

  3. ¡Listo! API tiene diferentes formas de simular el comportamiento. En este tutorial, demostraremos el uso de un script para simular un comportamiento simulado. Para hacer esto, cambie el Dispatch Stylede SEQUENCESCRIPTen el VirtAction resultante que creó en el paso anterior.
    Paso 4.1

  4. Ahora, debe definir la respuesta saliente. Para hacer esto, presione el +botón debajo de la Outgoingcolumna. Agregue las respuestas que le gustaría simular. Para este tutorial, agregue LoginOKLoginFAILsalidas. (Puede nombrarlos con o sin espacios, pero es importante que el nombre describa los diferentes tipos de respuesta que se devolverán).
    Paso 4.2

  5. Defina la respuesta seleccionando cada salida. Haga esto, por ejemplo, seleccionando LoginOKEn esta Editárea, verifique que HTTP Status Codesea 200 - OKLuego, cambie Content | Media typeapplication/jsonAgregue el siguiente fragmento de JSON como resultado que se devolverá para el LoginOKcaso:

{
"access_token": "1 / fFAGRNJru1FTz708zhT3Zg"
"expires_in": 3920,
"token_type": "Portador"
}

Si lo está siguiendo, ahora debería tener algo parecido a esto:
Paso5.1

Haga lo mismo con LoginFAIL
, pero cambie HTTP Status Code400 – Bad Request. 

Paso 5.2

Potencialmente, podemos agregar más cosas aquí, como una URL de redireccionamiento. Es posible que también desee agregar un mensaje de error, para que su cliente sepa qué salió mal. Experimentar. Siga siguiendo esta guía, ¡pero juegue también!

Ahora que ha definido VirtAction, casi ha terminado. Solo un poco de codificación y listo.

Codificación y devolución de información

Ahora que hemos definido salidas para nuestros dos acciones simuladas, LoginOKLoginFail, tenemos que añadir un poco de lógica para decidir cuál de las dos respuestas para enviar de vuelta en diferentes escenarios. Para hacer esto, siga estos pasos:

  1. 
En primer lugar, necesitamos obtener los parámetros de la solicitud. He copiado las primeras filas de código de otro ejemplo proporcionado por SmartBear. Este código recoge la cadena de consulta de solicitud y la divide en una matriz de variables.
def queryString = mockRequest.getRequest (). getQueryString ();
String [] fields = queryString.split ("&");
String [] kv;
HashMap params = new HashMap();

para (int i = 0; i <fields.length; ++ i) {
kv = campos [i] .split ("=");
si (2 == kv.length)
params.put (kv [0], kv [1]);
}


Si tenemos un parámetro llamado scope, por ejemplo, simplemente podemos decir params.get("scope"), y obtendremos el valor de ese parámetro. Es una forma limpia y agradable de resolver el problema. También puede haber otras formas de hacer esto, así que siéntete libre de experimentar :-)

2. El siguiente paso es definir y completar todas las variables. A continuación, se validará el resultado. Devolveremos la salida de nuestras diferentes VirtActions dependiendo de si el resultado fue validado con éxito o no. Hay un error en el código que dejé allí intencionalmente; Cubriré esto en el próximo paso, así que quédate conmigo.
def tipo_respuesta = params.get ("tipo_respuesta");
def id_cliente = params.get ("id_cliente");
def alcance = params.get ("alcance");

if (tipo_de_respuesta == "código") && id_cliente == "812741506391" &&
(alcance == "alcance del administrador" || alcance == "alcance del administrador% 20")) {
volver "LoginOK"
}

volver "LoginFAIL"

Si ejecuta el código anterior, obtendrá el siguiente error cuando llame al servicio virtual:

Paso 6.3a

En el registro de transacciones de la Virt, verá este error: Dispatch error; Missing response

Paso 6.3b
El error fue un )carácter adicional en el código. ¿Cómo podemos validar el código y obtener mensajes de depuración sobre el código? De hecho, es bastante fácil. Deja que te enseñe:

Paso 6.4

En la imagen de arriba, verá que describí tres áreas importantes de la interfaz de usuario: el botón de flecha verde, el error en el código y el mensaje de error recibido después de presionar el botón de flecha verde. Estos tres juntos le permitirán depurar su servicio virtual con relativa facilidad.

3. Para corregir el error (si aún no lo ha hecho), elimine el )carácter adicional .

4. Inicie su servidor presionando la flecha verde (ejecutar servidor).
Paso 6.6

NOTA Es posible que deba configurar su Virt para usar otro puerto que el predeterminado. Puede cambiar el puerto seleccionando el nombre del servicio (por ejemplo, RESTMock) en el explorador. Esto le dará una opción para definir el puerto y la ruta predeterminada.
Paso6.6a

Alojamiento de la API simulada

Ha creado un servicio virtual, ha agregado algún comportamiento e incluso ha escrito un pequeño código para enviar a las diferentes respuestas que deberían aparecer en diferentes circunstancias. Esto es realmente útil, una vez que lo aloja en algún lugar. Necesita ejecutar Virt en alguna dirección, puerto, etc. Para crear un host para la API imaginaria, haga lo siguiente:

  1. Navega a la Projectspestaña en la esquina superior izquierda.
    Paso7.1
  2. Haz clic derecho en tu Virt y selecciona New REST Services from URI.
    Paso7.2
  3. Agregue un URI donde desee ejecutar el punto final virtual. En mi caso, utilicé localhosty port 8081Mi URI completo fue .http://localhost:8081/login
    Paso 7.3
  4. Vaya a la Requestpestaña. Aquí es donde definimos los parámetros para nuestro servicio REST.
    Paso 7.4
  5. Presione el +botón y agregue sus parámetros de solicitud. Puede ver en la captura de pantalla anterior que agregué dos y un valor predeterminado también.
    Paso7.5

¡Ahora nuestro servicio está en funcionamiento! ¡Gran trabajo!

Prueba la API simulada

Por último, solo necesitamos un cliente para probar nuestra API virtual. Por supuesto, probablemente los escriba usted mismo desde cero, ya que ese es el punto de burlarse del servicio. Sin embargo, antes de llegar a eso, es útil asegurarse de que Virt esté funcionando como se espera. Para hacer esto, cambie a la pestaña Soap UI NG PRO y siga estos pasos:

  1. Haga clic derecho y seleccione New TestSuite.
    Paso 8.1
  2. Escriba un nombre adecuado para este conjunto de pruebas (por ejemplo, Oauth2).
    Paso 8.2
  3. Haga clic con el botón derecho en el conjunto de pruebas y presione New TestCaseEscriba un nombre adecuado para la prueba (por ejemplo, TestCase).
    Paso8.3

    Paso 8.4

  4. Haga clic con el botón derecho en el caso de prueba y seleccione Add Step, y luego REST Test Request.
    Paso8.5

  5. En el New TestStepcuadro de diálogo, agregue Login Success.
    Paso8.6
  6. Luego, seleccione el método REST llamado Login.
    Paso8.7
  7. Finalmente, agregue los valores de los parámetros y presione la flecha verde para ejecutar la prueba.
    Paso8.8

¡Felicidades lo has logrado!

Conclusión

En este tutorial, tiene:

  • Creó un servicio virtual
  • Comenzó el servicio virtual
  • Manejo de errores en el código de su servicio virtual
  • Se escribieron las salidas de error y de éxito.
  • Creó un cliente REST para probar su Virt

Eso es bastante bueno. Con lo básico, ahora puede configurar todo tipo de servicios de prueba. Este enfoque centrado en API para Test Drive Development (TDD) hará que su proceso de desarrollo sea más ágil y desvinculará a sus clientes y desarrolladores de servicios. También lo ayudará a asegurarse de que sus API sean de la más alta calidad.

Si se queda atascado al leer esta guía o tiene comentarios, deje un comentario a continuación o envíenos un tweet en Twitter .

[Nota del editor: Nordic APIs es una publicación independiente. Sin embargo, a diferencia de la mayoría de nuestras publicaciones, esta fue patrocinada por SmartBear, los creadores de Ready! API y interfaz de usuario de SOAP.]

Publicar un comentario

0 Comentarios