как обновить входящий запрос в pact jvm requestFilter? - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть API весенней загрузки в java, который использует pact-jvm для проверки pact. У нас есть новый клиент, который хочет использовать тот же API, используя новый путь, о котором позаботится шлюз, но это вызывает проблему для пактов, я хочу перехватить запрос и изменить путь запроса для новых пактов, чтобы указать к старому пути. Я пытался отослать какой-нибудь материал в Интернете и нашел это: https://medium.com/dazn-tech/pact-contract-testing-dealing-with-authentication-on-the-provider-51fd46fdaa78

Приведенный ниже код печатает обновленное значение запроса, но по-прежнему происходит сбой пакта с ошибкой 404, как будто это по-прежнему используя новый путь

requestFilter = { req ->
                println "incoming request : $req"
                if ("$req".contains('/new-context') ) {
                    req = "$req".replace('/new-context', '/old-context')
                    println "updated request : $req"
                }
            } 

1 Ответ

0 голосов
/ 30 апреля 2020

Проблема в приведенном выше коде заключалась в том, что я рассматривал req как строку и выполнял манипуляции, но это объект HttpRequest, и приведенный ниже код решил эту проблему для меня:

requestFilter = { req ->
                def uriText = req.getURI()
                println "incoming request uri : $uriText"
                if ("$uriText".contains('/new-context') ) {
                    def uriTextNew = "$uriText".replace('/new-context', '/old-context')
                    println "updated request uri : $uriTextNew"
                    URI newURI = new URI(uriTextNew)
                    req.setURI(newURI)
                }
            }
...