Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

355
Vistas
Wiremock Stand alone: cómo manipular la respuesta con los datos de la solicitud

Estaba tratando de implementar la burla de la llamada POST REST usando el servidor Wiremock Standalone. Me enfrento a un desafío como este, supongamos que el cuerpo de la publicación contiene un campo de "nombre" y su valor, el mismo valor debe devolverse en la respuesta de esa llamada POST. Mi archivo json se ve así:

 { "priority": 1, "request": { "method": "POST", "urlPath": "/primeSlots", "bodyPatterns" : [ { "matchesJsonPath" : "{ \"things\": [ { \"name\": \"794363\" }] }" } ] }, "response": { "status": 200, "body": "{{$.things.name.value}}", "transformers": ["response-template"] } }

entonces, necesito obtener el valor, que es 794363, pero al usar el enfoque anterior no puedo obtenerlo en el cuerpo de la respuesta posterior.

Intenté esto también:

 { "request": { "method": "POST", "urlPath": "/transform", "bodyPatterns": [ { "matchesJsonPath" : "$.things[?(@.name =~ /[0-9]+/i)]" } ] }, "response": { "status": 200, "body": "{\"responseName\": \" {{request.body.things.name.value}}\"}", "headers": { "Content-Type": "application/json" }, "transformers": ["body-transformer"] } }

Entonces, mi pregunta es, incluso si uso un regEx, que coincide con cualquier número que viene en la solicitud, ¿cómo devolver el mismo número en la respuesta usando el archivo json independiente de Wiremock? Gracias.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Desafortunadamente, el transformador de plantillas de respuesta de WireMock actualmente no divide el cuerpo de la solicitud en un mapa, como sería necesario para lo que está tratando de hacer. El cuerpo de la solicitud es solo una cadena.

La forma más sencilla de habilitar esto probablemente sea escribir un asistente de Handlebars que implemente JSONPath o algún otro mecanismo para consultar un documento JSON y luego registrarlo con el transformador de plantillas cuando inicialice WireMock.

En algún momento escribiré handlebars helpers para hacer este tipo de cosas para XML y JSON, pero eso no será por un tiempo.

over 4 years ago · Santiago Trujillo Denunciar

0

Hoy estuve en la misma situación que tú y encontré una solución que me gustaría compartir contigo:

  1. Crea una clase propia que amplíe ResponseDefinitionTransformer
  2. Agregue la funcionalidad del manillar en su propia clase de transformador (consulte https://github.com/jknack/handlebars.java cómo hacerlo)
  3. (Opcional) Agregue sus propios ayudantes u otros, por ejemplo Arrays.stream(StringHelpers.values()).forEach(helper -> this.handlebars.registerHelper(helper.name(), helper));
  4. Exporte la personalización de su transformador como un archivo JAR separado
  5. Cree un script por lotes de inicio para iniciar su WireMock independiente con su propia extensión de transformador, por ejemplo java -cp "-cp ".\lib\wiremock-standalone-2.5.1.jar;.\lib\customTransformer.jar" com.github.tomakehurst.wiremock.standalone.WireMockServerRunner --extensions "your.name.CustomTransformer" (para Linux use : en lugar de ; como separador de classpath)

En caso de que tenga varios transformadores, simplemente defina todos aquellos usando , (coma) como separador en el --extensions .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda