Servidor mock con hercule y drakov

0
1187

En este tutorial veremos cómo crear de forma rápida un servidor mock con drakov y además hacerlo mantenible separándolo en diferentes ficheros .apib y uniéndolos con hercule.

Es probable que tengamos que dar de forma rápida un servidor mock al equipo de front y para poder hacerlo e ir guardando todos los endpoints en ficheros separados usaremos drakov y hercule.

Índice de contenidos


1. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15′ (2.5 GHz Intel Core i7, 16GB DDR3)
  • Sistema Operativo: Mac OS Sierra 10.12.5
  • Node Package Manager (npm) v3.10.10
  • Drakov v1.0.4
  • Hercule v4.1.1
  • Postman v5.5.0


2. Instalación

Para este tutorial, he elegido hacer un ejemplo con un servidor mock de deportes. Todas las peticiones http las haremos con Postman.

Teniendo instalado npm, empezaremos por instalar drakov y hercule desde el terminal.

De esta manera ya podremos usar los comandos “drakov” y “hercule”. Abriremos el terminal y cambiaremos a una carpeta en la que dejaremos todos los ficheros que veremos durante el tutorial y usaremos para ejecutar todos los comandos de drakov y hercule.


3. Servidor mock con el primer endpoint usando drakov

En primer lugar crearemos un endpoint que acepte una petición GET y devuelva una lista de deportes dentro de la propiedad “resultados”. Definiremos los endpoints usando el formato API Blueprint.

listado_deportes.apib

Dejaremos este fichero en la carpeta que hemos creado para el tutorial y para comprobar que este fichero es correcto lanzaremos por primera vez el servidor mock desde el terminal únicamente con este endpoint.

Lanzamos una petición GET desde postman sobre el puerto por defecto de drakov, el puerto 3000.

Y obtendremos la respusta:

Una vez comprobado podemos parar el servidor mock en el terminal.


4. Unión de varios ficheros apib usando hercule

Empezaremos creando tres nuevos endpoint para tener un servidor con cuatro endpoints en total.

deporte_eliminar.apib

deporte_editar.apib

deportes_.apib

Ahora que ya tenemos varios endpoints, los juntaremos en un mismo fichero usando hercule. A hercule le tendremos que pasar otro fichero en el que pondremos la ruta al fichero apib de cada endpoint.

api_deportes_hercule.apib

Usaremos el fichero “api_deportes_hercule.apib” para generar la api completa con hercule, la api la generaremos en el fichero “api_deportes.apib” con el comando:

Vemos que el fichero destino “api_deportes.apib” es la composición de los demás ficheros. Volveremos a lanzar el comando drakov para tener el servidor con todos los endpoints.

Si añadimos al comando drakov, el argumento “–watch”, el servidor estará comprobando continuamente el fichero “api_deportes.apib” y si este cambia, el servidor se refrescará automáticamente. Esto es útil para no tener que estar lanzando el servidor mock cada vez que cambiemos el archivo “api_deportes.apib”.

En este momento ya podremos hacer todas las peticiones contra el servidor mock y ver los resultados. Podemos lanzar las siguientes peticiones:


5. Conclusiones

Hemos visto por encima el uso de drakov, pero el objetivo de este tutorial era ver cómo hacer mantenible el uso de drakov y no tener un fichero extenso con todos los endpoints. Con hercule podemos unir los diferentes ficheros de los endpoints facilmente y mantenerlos separados para no tener un solo fichero con la definición de la api completa.

Os dejo un enlace a todos los ficheros usados y el json con las peticiones realizadas en postman.

servidor_mock_hercule_drakov


6. Referencias

Un saludo.

Carlos.

Dejar respuesta

Please enter your comment!
Please enter your name here