Tengo una URL (OBTENER SOLICITUD) del siguiente patrón
donde los parámetros de la cadena de consulta pathid están separados por comas
Tengo las siguientes asignaciones rechonchas para que coincidan con estos patrones de URL
- request: url: ^/testpath/(.*)/test query: pathid: '1' method: GET response: headers: Content-Type: application/json status: 200 file: response/path-1.json - request: url: ^/testpath/(.*)/test query: pathid: '1,2' method: GET response: headers: Content-Type: application/json status: 200 file: response/path-2.json - request: url: ^/testpath/(.*)/test query: pathid: '1,2,5' method: GET response: headers: Content-Type: application/json status: 200 file: response/path-3.jsonpero no puedo obtener esta asignación de URL para entregar correctamente diferentes cargas útiles en función de diferentes combinaciones de parámetros.
¿Cómo se puede hacer esto?
@Sanath, respuesta corta: sí, stubby4j coincide con diferentes combinaciones de parámetros de consulta stubb.
Pocas preguntas:
Escribí una prueba para validar la configuración YAML que proporcionó en su pregunta: https://github.com/azagniotov/stubby4j/pull/434/files (tenga en cuenta que cambié un poco la url , pero sigue siendo una expresión regular similar a su YAML publicado).
Las solicitudes que hace la prueba coinciden con los stubs. (Lo intenté sin $ y con $ , como sugirió @code). Además, también probé con cURL contra un JAR independiente en ejecución:
curl -X GET http://localhost:8882/stackoverflow/70417269/1/test?pathid=1,2,5y
curl -X GET http://localhost:8882/stackoverflow/70417269/1/test?pathid=1,2Nuevamente, obtuve las respuestas esperadas del servidor.
Si lo anterior no le ayuda, no dude en generar un informe de error https://github.com/azagniotov/stubby4j/issues/new/choose
El truco aquí es cambiar el orden de las asignaciones de solicitud/respuesta en el archivo yaml.
- request: url: ^/testpath/(.*)/test query: **pathid: '1,2,5'** method: GET response: headers: Content-Type: application/json status: 200 file: response/path-3.json - request: url: ^/testpath/(.*)/test query: **pathid: '1,2'** method: GET response: headers: Content-Type: application/json status: 200 file: response/path-2.json - request: url: ^/testpath/(.*)/test query: **pathid: '1'** method: GET response: headers: Content-Type: application/json status: 200 file: response/path-1.jsontenga en cuenta los identificadores de ruta agregados en orden descendente, de modo que se ejecuten primero las coincidencias más profundas.
De esta manera, pude lograr el siguiente requisito, pasar diferentes identificadores de ruta separados por una coma